Package org.antlr.v4.codegen.model
Class RuleFunction
- java.lang.Object
-
- org.antlr.v4.codegen.model.OutputModelObject
-
- org.antlr.v4.codegen.model.RuleFunction
-
- Direct Known Subclasses:
LeftRecursiveRuleFunction
public class RuleFunction extends OutputModelObject
-
-
Field Summary
Fields Modifier and Type Field Description java.util.Map<java.lang.String,AltLabelStructDecl>
altLabelCtxs
AltLabelStructDecl[]
altToContext
java.util.Collection<AttributeDecl>
args
java.util.List<SrcOp>
code
java.lang.String
ctxType
java.util.List<ExceptionClause>
exceptions
Action
finallyAction
boolean
hasLookaheadBlock
int
index
OrderedHashSet<Decl>
locals
java.util.List<java.lang.String>
modifiers
java.lang.String
name
java.util.Map<java.lang.String,Action>
namedActions
java.util.List<SrcOp>
postamble
Rule
rule
StructDecl
ruleCtx
java.util.Collection<java.lang.String>
ruleLabels
ATNState
startState
java.util.Collection<java.lang.String>
tokenLabels
-
Fields inherited from class org.antlr.v4.codegen.model.OutputModelObject
ast, factory
-
-
Constructor Summary
Constructors Constructor Description RuleFunction(OutputModelFactory factory, Rule r)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addContextDecl(java.lang.String altLabel, Decl d)
Add decl to struct ctx for rule or alt if labeledvoid
addContextGetters(OutputModelFactory factory, Rule r)
void
addLocalDecl(Decl d)
Add local var declvoid
fillNamedActions(OutputModelFactory factory, Rule r)
java.util.List<Decl>
getDeclForAltElement(GrammarAST t, java.lang.String refLabelName, boolean needList, boolean optional)
java.util.Set<Decl>
getDeclsForAllElements(java.util.List<AltAST> altASTs)
for all alts, find which ref X or r needs List Must see across alts.protected Pair<FrequencySet<java.lang.String>,FrequencySet<java.lang.String>>
getElementFrequenciesForAlt(AltAST ast)
Given list of X and r refs in alt, compute how many of each there areprivate java.lang.String
getName(GrammarAST token)
private java.util.List<GrammarAST>
getRuleTokens(java.util.List<GrammarAST> refs)
-
-
-
Field Detail
-
name
public java.lang.String name
-
modifiers
public java.util.List<java.lang.String> modifiers
-
ctxType
public java.lang.String ctxType
-
ruleLabels
public java.util.Collection<java.lang.String> ruleLabels
-
tokenLabels
public java.util.Collection<java.lang.String> tokenLabels
-
startState
public ATNState startState
-
index
public int index
-
rule
public Rule rule
-
altToContext
public AltLabelStructDecl[] altToContext
-
hasLookaheadBlock
public boolean hasLookaheadBlock
-
code
public java.util.List<SrcOp> code
-
locals
public OrderedHashSet<Decl> locals
-
args
public java.util.Collection<AttributeDecl> args
-
ruleCtx
public StructDecl ruleCtx
-
altLabelCtxs
public java.util.Map<java.lang.String,AltLabelStructDecl> altLabelCtxs
-
namedActions
public java.util.Map<java.lang.String,Action> namedActions
-
finallyAction
public Action finallyAction
-
exceptions
public java.util.List<ExceptionClause> exceptions
-
postamble
public java.util.List<SrcOp> postamble
-
-
Constructor Detail
-
RuleFunction
public RuleFunction(OutputModelFactory factory, Rule r)
-
-
Method Detail
-
addContextGetters
public void addContextGetters(OutputModelFactory factory, Rule r)
-
fillNamedActions
public void fillNamedActions(OutputModelFactory factory, Rule r)
-
getDeclsForAllElements
public java.util.Set<Decl> getDeclsForAllElements(java.util.List<AltAST> altASTs)
for all alts, find which ref X or r needs List Must see across alts. If any alt needs X or r as list, then define as list.
-
getRuleTokens
private java.util.List<GrammarAST> getRuleTokens(java.util.List<GrammarAST> refs)
-
getName
private java.lang.String getName(GrammarAST token)
-
getElementFrequenciesForAlt
protected Pair<FrequencySet<java.lang.String>,FrequencySet<java.lang.String>> getElementFrequenciesForAlt(AltAST ast)
Given list of X and r refs in alt, compute how many of each there are
-
getDeclForAltElement
public java.util.List<Decl> getDeclForAltElement(GrammarAST t, java.lang.String refLabelName, boolean needList, boolean optional)
-
addLocalDecl
public void addLocalDecl(Decl d)
Add local var decl
-
addContextDecl
public void addContextDecl(java.lang.String altLabel, Decl d)
Add decl to struct ctx for rule or alt if labeled
-
-