filipg/amu_automata_2011 — Issue #544: Opracować klasę reprezentującą regułę gramatyki
Author: filipg
Created: 2012-01-11 08:06:28+00:00
State: open
Labels: 5 punktów, grammars

Tj. klasę `GrammarRule` z następującym interfejsem:

/**
* Reguła z pustą prawą stroną.
*/
GrammarRule(GrammarNonterminalSymbol lhsSymbol);

/**
* Reguła unarna (z jednym symbolem po prawej stronie).
*/
GrammarRule(GrammarNonterminalSymbol lhsSymbol, GrammarSymbol rhsSymbol);

/**
* Reguła binarna (z dwoma symbolami po prawej stronie).
*/
GrammarRule(GrammarNonterminalSymbol lhsSymbol, GrammarSymbol rhsFirstSymbol, GrammarSymbol rhsSecondSymbol);

/**
* Reguła z dowolną liczbą symboli po prawej stronie.
*/
GrammarRule(GrammarNonterminalSymbol lhsSymbol, List rhsSymbols);

/**
* Zwraca symbol po lewej stronie.
*/
GrammarNonterminalSymbol getLhsSymbol();

/**
* Zwraca pierwszy symbol po prawej stronie, jeśli nie ma takiego symbolu, powinien być wyrzucany wyjątek.
*/
GrammarSymbol getRhsFirstSymbol();

/**
* Zwraca drugi symbol po prawej stronie, jeśli nie ma takiego symbolu, powinien być wyrzucany wyjątek.
*/
GrammarSymbol getRhsSecondSymbol();

/**
* Zwraca listę symboli po prawej stronie.
*/
List getRhsSymbols();

/**
* Zwraca arność (liczbę symboli po prawej stronie).
*/
int getArity();

Jest to zadanie z trzeciego działu, proszę jednak umieścić rozwiązanie w projekcie daut-re.

Zwracam uwagę na nietypowy, krótki milestone. Za to jest dość dużo punktów, jak na takie proste zadanie.