grammars
Class SententialForm

java.lang.Object
  |
  +--grammars.SententialForm

public class SententialForm
extends java.lang.Object

Trida reprezentujici libovolnou vetnou formu slozenou ze symbolu


Field Summary
protected  Symbol[] sentence
          Pole symbolu tvorici vetnou formu
 
Constructor Summary
SententialForm(SententialForm sf1)
          Vytvori kopii vetne formy
SententialForm(SententialForm sf1, SententialForm sf2)
          Spoji dve vetne formy do nove
SententialForm(SententialForm sf1, SententialForm sf2, SententialForm sf3)
          Spoji tri vetne formy do nove
SententialForm(Symbol w)
          Vytvori vetnou formu tvorenou jednim symbolem
SententialForm(Symbol[] w)
          Vytvori vetnou formu tvorenou danymi symboly.
 
Method Summary
 int[] allIndexOf(SententialForm sw)
          Hleda vsechny vyskyty podformy ve vetne forme.
 int indexOf(SententialForm sw)
          Hleda podformu vetne formy.
 boolean isEqual(SententialForm sf)
          Slouzi k porovnani vetne formy s jinou
static boolean isSubword(SententialForm w, SententialForm sw)
          Zjisti, jestli jedna vetna forma je podformou druhe
 boolean isTerminalWord()
          Slouzi ke zjisteni, jestli je vetna forma tvorena pouze terminalnimi symboly
 int length()
          Slouzi ke zjisteni delky vetne formy
 SententialForm subword(int begin)
          Slouzi k ziskani podformy od urceneho zacatku do konce puvodni
 SententialForm subword(int begin, int end)
          Slouzi k ziskani podformy z pozadovaneho rozmezi pozic
 Symbol symbolAt(int pos)
          Slouzi ke ziskani symbolu na urcite pozici ve vetne forme.
 java.lang.String toString()
          Prevede vetnou formu na retezec tvoreny jmeny symbolu oddelenymi mezerami
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

sentence

protected Symbol[] sentence
Pole symbolu tvorici vetnou formu
Constructor Detail

SententialForm

public SententialForm(Symbol[] w)
Vytvori vetnou formu tvorenou danymi symboly. Symbol lambda bude jen, kdyz bude vetna forma nulove delky.
Parameters:
w - Pole symbolu, ktere budou tvorit vetnou formu

SententialForm

public SententialForm(Symbol w)
Vytvori vetnou formu tvorenou jednim symbolem
Parameters:
w - Symbol, ktery bude tvorit vetnou formu

SententialForm

public SententialForm(SententialForm sf1)
Vytvori kopii vetne formy
Parameters:
sf1 - Vetna forma, jejiz kopie se tvori

SententialForm

public SententialForm(SententialForm sf1,
                      SententialForm sf2)
Spoji dve vetne formy do nove
Parameters:
sf1 - Vetna forma, ktera bude po spojeni vlevo
sf2 - Vetna forma, ktera bude po spojeni vpravo

SententialForm

public SententialForm(SententialForm sf1,
                      SententialForm sf2,
                      SententialForm sf3)
Spoji tri vetne formy do nove
Parameters:
sf1 - Vetna forma, ktera bude po spojeni vlevo
sf2 - Vetna forma, ktera bude po spojeni uprostred
sf3 - Vetna forma, ktera bude po spojeni vpravo
Method Detail

length

public int length()
Slouzi ke zjisteni delky vetne formy
Returns:
Pocet symbolu vetne formy.

symbolAt

public Symbol symbolAt(int pos)
Slouzi ke ziskani symbolu na urcite pozici ve vetne forme. Pokud je pozadovana pozice mimo hranice vetne formy, generuje se vyjimka IndexOutOfBoundsException. Neni ale deklarovana klauzuli throws, aby nemusela byt chytana, kdyz se predem delka zkontroluje.
Parameters:
pos - Pozice pozadovaneho symbolu. Pocita se od 0.
Returns:
Symbol na dane pozici

indexOf

public int indexOf(SententialForm sw)
Hleda podformu vetne formy.
Parameters:
sw - Hledana podforma
Returns:
V pripade nalezeni je to pozice prvniho znaku podformy ve vetne forme. Pri nenalezeni vraci -1.

allIndexOf

public int[] allIndexOf(SententialForm sw)
Hleda vsechny vyskyty podformy ve vetne forme.
Parameters:
sw - Hledana podforma
Returns:
Pole pozic ve vetne forme, na kterych se nachazi prvni znak podformy. Neni-li nalezen zadny vyskyt, vraci pole delky 0.

isSubword

public static boolean isSubword(SententialForm w,
                                SententialForm sw)
Zjisti, jestli jedna vetna forma je podformou druhe
Parameters:
w - Forma, ve ktere se hleda
sw - Hledana podforma
Returns:
true, pokud se jedna o podformu. Jinak false.

subword

public SententialForm subword(int begin,
                              int end)
Slouzi k ziskani podformy z pozadovaneho rozmezi pozic
Parameters:
begin - Pozice prvniho znaku vracene podformy
end - Pozice prvniho znaku, ktery jiz do vetne formy nebude zarazen
Returns:
Pozadovana podforma

subword

public SententialForm subword(int begin)
Slouzi k ziskani podformy od urceneho zacatku do konce puvodni
Parameters:
begin - Pozice prvniho znaku vracene podformy
Returns:
Pozadovana podforma

toString

public java.lang.String toString()
Prevede vetnou formu na retezec tvoreny jmeny symbolu oddelenymi mezerami
Overrides:
toString in class java.lang.Object
Returns:
Retezec reprezentujici vetnou formu

isTerminalWord

public boolean isTerminalWord()
Slouzi ke zjisteni, jestli je vetna forma tvorena pouze terminalnimi symboly
Returns:
true, pokud jsou vsechny symboly terminaly. Jinak false.

isEqual

public boolean isEqual(SententialForm sf)
Slouzi k porovnani vetne formy s jinou
Parameters:
sf - Vetna forma, se kterou se bude porovnavat
Returns:
true, pokud maji symboly obou forme stejne nazvy a jsou ve stejnem poradi. Jinak false.