grammars
Class ProgrammedGrammar

java.lang.Object
  |
  +--grammars.Grammar
        |
        +--grammars.ProgrammedGrammar

public class ProgrammedGrammar
extends Grammar

Trida reprezentujici programovanou gramatiku. Proti klasicke gramatice pridava praci s oznacenimi pravidel a meni zpusob hledani pouzitelnych pravidel.


Fields inherited from class grammars.Grammar
lambda, lambdaTerm, nonterminals, productions, start, terminals
 
Constructor Summary
ProgrammedGrammar()
          Pomocny konstruktor.
ProgrammedGrammar(PrgProduction[] p)
          Vytvori gramatiku s urcenymi pravidly
ProgrammedGrammar(Production[] p, Terminal[] t, Nonterminal[] n, Nonterminal s)
          Vytvori gramatiku s urcenymi pravidly i symboly
 
Method Summary
 Production[] acUsableProductions(SententialForm sent, Step lastStep)
          Slouzi k ziskani pravidel gramatiky aplikovatelnych ve smyslu testovani vyskytu na urcenou vetnou formu.
 Grammar copy()
          Vytvori kopii gramatiky.
 boolean existLabel(java.lang.String str)
          Slouzi ke zjisteni, jestli gramatika jiz obsahuje pravidlo s danym oznacenim.
 java.lang.String labelToProds()
          Projde pravidla a vytvori v nich pole pravidel podle poli oznaceni pro pole uspechu a neuspechu.
 Production[] leftAcUsableProductions(SententialForm sent, Step lastStep)
          Slouzi k ziskani pravidel gramatiky aplikovatelnych ve smyslu testovani vyskytu na urcenou vetnou formu pri soucasnem uvazovani leve nebo leftmost derivace.
 Production[] leftUsableProductions(SententialForm sent, Step lastStep)
          Slouzi k ziskani pravidel gramatiky aplikovatelnych na urcenou vetnou formu.
 Production[] usableProductions(SententialForm sent, Step lastStep)
          Slouzi k ziskani pravidel gramatiky aplikovatelnych na urcenou vetnou formu.
 
Methods inherited from class grammars.Grammar
addNonterminal, addProduction, addSymbol, addTerminal, getNonterminals, getProductions, getStart, getTerminals, changeUseCount, noUsedSymbols, removeProduction, setStart
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Constructor Detail

ProgrammedGrammar

public ProgrammedGrammar()
Pomocny konstruktor. Vytvori gramatiku bez pravidel i symbolu.

ProgrammedGrammar

public ProgrammedGrammar(PrgProduction[] p)
Vytvori gramatiku s urcenymi pravidly
Parameters:
p - Pravidla nove gramatiky

ProgrammedGrammar

public ProgrammedGrammar(Production[] p,
                         Terminal[] t,
                         Nonterminal[] n,
                         Nonterminal s)
Vytvori gramatiku s urcenymi pravidly i symboly
Parameters:
p - Pravidla nove gramatiky
t - Mnozina terminalu
n - Mnozina neterminalu
s - Pocatecni neterminal
Method Detail

copy

public Grammar copy()
Vytvori kopii gramatiky. Pravidla, terminaly a neterminaly netvori znovu, jen zkopiruje odkazy na ne.
Overrides:
copy in class Grammar
Returns:
Kopie gramatiky

existLabel

public boolean existLabel(java.lang.String str)
Slouzi ke zjisteni, jestli gramatika jiz obsahuje pravidlo s danym oznacenim.
Parameters:
str - Oznaceni hledane v pravidlech
Returns:
true, pokud jiz oznaceni bylo pouzito. Jinak false.

usableProductions

public Production[] usableProductions(SententialForm sent,
                                      Step lastStep)
Slouzi k ziskani pravidel gramatiky aplikovatelnych na urcenou vetnou formu. Podle predchoziho kroku derivace urci pravidla, ze kterych se vybiraji pouzitelna.
Overrides:
usableProductions in class Grammar
Parameters:
sent - Vetna forma, na kterou se maji pravidla aplikovat
lastStep - Predchozi krok derivace
Returns:
Aplikovatelna pravidla

leftUsableProductions

public Production[] leftUsableProductions(SententialForm sent,
                                          Step lastStep)
Slouzi k ziskani pravidel gramatiky aplikovatelnych na urcenou vetnou formu. Pri vyberu je vybrano pravidlo nebo pravidla, jejichz leva strana je ve vetne forme nejvice vlevo. Podle predchoziho kroku derivace urci pravidla, ze kterych se vybiraji pouzitelna.
Overrides:
leftUsableProductions in class Grammar
Parameters:
sent - Vetna forma, na kterou se maji pravidla aplikovat
lastStep - Predchozi krok derivace
Returns:
Aplikovatelna pravidla

acUsableProductions

public Production[] acUsableProductions(SententialForm sent,
                                        Step lastStep)
Slouzi k ziskani pravidel gramatiky aplikovatelnych ve smyslu testovani vyskytu na urcenou vetnou formu. Podle predchoziho kroku derivace urci pravidla, ze kterych se vybiraji pouzitelna.
Overrides:
acUsableProductions in class Grammar
Parameters:
sent - Vetna forma, na kterou se maji pravidla aplikovat
lastStep - Predchozi krok derivace
Returns:
Aplikovatelna pravidla

leftAcUsableProductions

public Production[] leftAcUsableProductions(SententialForm sent,
                                            Step lastStep)
Slouzi k ziskani pravidel gramatiky aplikovatelnych ve smyslu testovani vyskytu na urcenou vetnou formu pri soucasnem uvazovani leve nebo leftmost derivace. Podle predchoziho kroku derivace urci pravidla, ze kterych se vybiraji pouzitelna. Pokud je nejake pravidlo pouzitelne klasicky, vraci prazdne pole.
Overrides:
leftAcUsableProductions in class Grammar
Parameters:
sent - Vetna forma, na kterou se maji pravidla aplikovat
lastStep - Predchozi krok derivace
Returns:
Aplikovatelna pravidla

labelToProds

public java.lang.String labelToProds()
Projde pravidla a vytvori v nich pole pravidel podle poli oznaceni pro pole uspechu a neuspechu.
Returns:
Oznaceni, ktere nema zadne pravidlo, ale vyskytuje se v poli uspechu nebo neuspechu nejakeho pravidla. Pokud takove neexistuje, vraci null a uspesne vytvori dve pole objektu typu PrgProduction pravidla