|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.antlr.tool.GrammarSanity
public class GrammarSanity
Factor out routines that check sanity of rules, alts, grammars, etc..
Field Summary | |
---|---|
protected Grammar |
grammar
|
Constructor Summary | |
---|---|
GrammarSanity(Grammar grammar)
|
Method Summary | |
---|---|
protected void |
addRulesToCycle(java.lang.String targetRuleName,
java.lang.String enclosingRuleName,
java.util.List listOfRecursiveCycles)
enclosingRuleName calls targetRuleName, find the cycle containing the target and add the caller. |
java.util.List |
checkAllRulesForLeftRecursion()
Check all rules for infinite left recursion before analysis. |
void |
checkRuleReference(GrammarAST refAST,
GrammarAST argsAST,
java.lang.String currentRuleName)
|
void |
ensureAltIsSimpleNodeOrTree(GrammarAST altAST,
GrammarAST elementAST,
int outerAltNum)
Rules in tree grammar that use -> rewrites and are spitting out templates via output=template and then use rewrite=true must only use -> on alts that are simple nodes or trees or single rule refs that match either nodes or trees. |
protected boolean |
isNextNonActionElementEOA(GrammarAST t)
|
protected boolean |
isValidSimpleElementNode(GrammarAST t)
|
protected boolean |
traceStatesLookingForLeftRecursion(NFAState s,
java.util.Set visitedStates,
java.util.List listOfRecursiveCycles)
From state s, look for any transition to a rule that is currently being traced. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected Grammar grammar
Constructor Detail |
---|
public GrammarSanity(Grammar grammar)
Method Detail |
---|
public java.util.List checkAllRulesForLeftRecursion()
protected boolean traceStatesLookingForLeftRecursion(NFAState s, java.util.Set visitedStates, java.util.List listOfRecursiveCycles)
protected void addRulesToCycle(java.lang.String targetRuleName, java.lang.String enclosingRuleName, java.util.List listOfRecursiveCycles)
public void checkRuleReference(GrammarAST refAST, GrammarAST argsAST, java.lang.String currentRuleName)
public void ensureAltIsSimpleNodeOrTree(GrammarAST altAST, GrammarAST elementAST, int outerAltNum)
protected boolean isValidSimpleElementNode(GrammarAST t)
protected boolean isNextNonActionElementEOA(GrammarAST t)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |