grammars
Class Production

java.lang.Object
  |
  +--grammars.Production
Direct Known Subclasses:
PrgProduction

public class Production
extends java.lang.Object

Trida reprezentujici pravidlo klasicke obecne gramatiky


Field Summary
protected  SententialForm left
          Leva strana pravidla
protected  SententialForm right
          Prava strana pravidla
 
Constructor Summary
Production()
          Pomocny konstruktor.
Production(SententialForm l, SententialForm r)
          Vytvori pravidlo s pozadovanou levou i pravou stranou
 
Method Summary
(package private)  SententialForm derivate(SententialForm oldSF)
          Provede prepsani nejlevejsiho vyskytu leve strany ve vetne forme
 SententialForm derivate(SententialForm oldSF, int index)
          Provede prepsani pozadovaneho vyskytu leve strany ve vetne forme
 SententialForm getLeft()
          Slouzi k ziskani leve strany pravidla
 SententialForm getRight()
          Slouzi k ziskani prave strany pravidla
 void getRight(SententialForm sf)
          Slouzi k nastaveni prave strany pravidla
 void setLeft(SententialForm sf)
          Slouzi k nastaveni leve strany pravidla
 java.lang.String toListItem()
          Prevede pravidlo na retezec pro seznam pouzitelnych pravidel.
 java.lang.String toStepsString()
          Prevede pravidlo na retezec pro seznam kroku derivace.
 java.lang.String toString()
          Prevede pravidlo na retezec ve tvaru leva strana -> prava strana
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

left

protected SententialForm left
Leva strana pravidla

right

protected SententialForm right
Prava strana pravidla
Constructor Detail

Production

public Production()
Pomocny konstruktor. Vytvori pravidlo s prazdou pravou i levou stranou

Production

public Production(SententialForm l,
                  SententialForm r)
Vytvori pravidlo s pozadovanou levou i pravou stranou
Parameters:
l - Leva strana pravidla
p - Prava strana pravidla
Method Detail

getLeft

public SententialForm getLeft()
Slouzi k ziskani leve strany pravidla
Returns:
Leva strana pravidla

getRight

public SententialForm getRight()
Slouzi k ziskani prave strany pravidla
Returns:
Prava strana pravidla

setLeft

public void setLeft(SententialForm sf)
Slouzi k nastaveni leve strany pravidla
Parameters:
sf - Nova leva strana pravidla

getRight

public void getRight(SententialForm sf)
Slouzi k nastaveni prave strany pravidla
Parameters:
sf - Nova prava strana pravidla

derivate

SententialForm derivate(SententialForm oldSF)
Provede prepsani nejlevejsiho vyskytu leve strany ve vetne forme
Parameters:
oldSF - Puvodni vetna forma, na kterou se pravidlo aplikuje
Returns:
Nova vetna forma. Je ziskana z puvodni nahrazenim leve strany pravidla pravou stranou.

derivate

public SententialForm derivate(SententialForm oldSF,
                               int index)
                        throws java.lang.IndexOutOfBoundsException
Provede prepsani pozadovaneho vyskytu leve strany ve vetne forme
Parameters:
oldSF - Puvodni vetna forma, na kterou se pravidlo aplikuje
index - Poradi vyskytu leve strany, ktery ma byt prepsan. Pocita se od 1.
Returns:
Nova vetna forma. Je ziskana z puvodni nahrazenim leve strany pravidla pravou stranou.
Throws:
java.lang.IndexOutOfBoundsException - Pokud je pozadovan neexistujici vyskyt

toString

public java.lang.String toString()
Prevede pravidlo na retezec ve tvaru
 leva strana -> prava strana
Overrides:
toString in class java.lang.Object
Returns:
Retezec reprezentujici pravidlo

toListItem

public java.lang.String toListItem()
Prevede pravidlo na retezec pro seznam pouzitelnych pravidel. Tvar je stejny, jako generovany funkci toString()
Returns:
Retezec reprezentujici pravidlo

toStepsString

public java.lang.String toStepsString()
Prevede pravidlo na retezec pro seznam kroku derivace. Tvar je stejny, jako generovany funkci toString() jen uzavreny do zavorek
Returns:
Retezec reprezentujici pravidlo