|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--fri.patterns.interpreter.parsergenerator.syntax.Syntax
A Syntax is a Rule list that can be converted to a parser table. It provides several methods to check and simplify the grammar. Syntax accepts no duplicate rules (ignores any addition except the first by using a backing hashtable).
Constructor Summary | |
Syntax()
|
|
Syntax(int size)
|
|
Syntax(java.util.List rules)
|
|
Syntax(java.lang.String[][] rules)
|
|
Syntax(java.lang.String[][][] ruleSets)
|
Method Summary | |
void |
addRule(Rule rule)
Appends a new rule to this Syntax. |
void |
appendRules(java.util.List rules)
Append rules to this syntax. |
java.util.List |
findStartRules()
Returns a List of top level Rules (that do not appear on right side of any contained rule). |
Rule |
getRule(int i)
Returns the rule at the given position. |
java.util.Set |
getUnresolvedNonterminals()
Returns a set of nonterminals that have no rule within this syntax. |
boolean |
hasRule(java.lang.String nonterminal)
Returns true if the passed nonterminal is on the left side of at least one contained rule. |
void |
insertRule(int i,
Rule rule)
Inserts a new rule into this Syntax (needed to set artificial START rule at position 0). |
void |
removeRule(int index)
Removes the rule at passed index from this Syntax. |
void |
resolveFrom(Syntax resolvingSyntax)
Resolves undefined rules in this syntax from another syntax. |
void |
resolveSingulars()
Simplify the syntax. |
int |
size()
Returns the number of rules of this Syntax. |
java.lang.String |
toString()
Returns the syntax as a human readable multiline text. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
public Syntax()
public Syntax(int size)
public Syntax(java.lang.String[][] rules)
public Syntax(java.lang.String[][][] ruleSets)
public Syntax(java.util.List rules)
Method Detail |
public void appendRules(java.util.List rules)
public int size()
public Rule getRule(int i)
public void addRule(Rule rule)
public void insertRule(int i, Rule rule)
public void removeRule(int index)
public java.util.List findStartRules()
public void resolveSingulars()
This method is called by default from SerializedObject (base class for all builders).
CAUTION: Such symbols will not be called within Semantic!
public void resolveFrom(Syntax resolvingSyntax)
resolvingSyntax
- the syntax to copy rules frompublic java.util.Set getUnresolvedNonterminals()
public boolean hasRule(java.lang.String nonterminal)
public java.lang.String toString()
toString
in class java.lang.Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |