AttributeResolverLeftRecursiveRulepublic class Rule extends Object implements AttributeResolver
| Modifier and Type | Field | Description |
|---|---|---|
int |
actionIndex |
|
List<ActionAST> |
actions |
Track all executable actions other than named actions like @init
and catch/finally (not in an alt).
|
Alternative[] |
alt |
1..n alts
|
AttributeDict |
args |
|
RuleAST |
ast |
|
List<GrammarAST> |
exceptions |
Track exception handlers; points at "catch" node of (catch exception action)
don't track finally action
|
ActionAST |
finallyAction |
|
Grammar |
g |
In which grammar does this rule live?
|
int |
index |
All rules have unique index 0..n-1
|
boolean |
isStartRule |
|
AttributeDict |
locals |
|
String |
mode |
If we're in a lexer grammar, we might be in a mode
|
List<GrammarAST> |
modifiers |
|
String |
name |
|
Map<String,ActionAST> |
namedActions |
Map a name to an action for this rule like @init {...}.
|
int |
numberOfAlts |
|
static AttributeDict |
predefinedRulePropertiesDict |
Rule refs have a predefined set of attributes as well as
the return values and args.
|
AttributeDict |
retvals |
|
static Set<String> |
validLexerCommands |
| Constructor | Description |
|---|---|
Rule(Grammar g,
String name,
RuleAST ast,
int numberOfAlts) |
public static final AttributeDict predefinedRulePropertiesDict
public String name
public List<GrammarAST> modifiers
public RuleAST ast
public AttributeDict args
public AttributeDict retvals
public AttributeDict locals
public Grammar g
public String mode
public Map<String,ActionAST> namedActions
public List<GrammarAST> exceptions
public List<ActionAST> actions
public ActionAST finallyAction
public int numberOfAlts
public boolean isStartRule
public Alternative[] alt
public int index
public int actionIndex
public void defineActionInAlt(int currentAlt,
ActionAST actionAST)
public void defineLexerAction(ActionAST actionAST)
public void definePredicateInAlt(int currentAlt,
PredAST predAST)
public org.stringtemplate.v4.misc.MultiMap<String,LabelElementPair> getElementLabelDefs()
public boolean hasAltSpecificContexts()
public int getOriginalNumberOfAlts()
public Map<String,List<Pair<Integer,AltAST>>> getAltLabels()
# labels. The keys of the map are the labels applied to outer
alternatives of a lexer rule, and the values are collections of pairs
(alternative number and AltAST) identifying the alternatives with
this label. Unlabeled alternatives are not included in the result.public Attribute resolveToAttribute(String x, ActionAST node)
resolveToAttribute in interface AttributeResolverpublic Attribute resolveToAttribute(String x, String y, ActionAST node)
resolveToAttribute in interface AttributeResolverpublic boolean resolvesToLabel(String x, ActionAST node)
resolvesToLabel in interface AttributeResolverpublic boolean resolvesToListLabel(String x, ActionAST node)
resolvesToListLabel in interface AttributeResolverpublic boolean resolvesToToken(String x, ActionAST node)
resolvesToToken in interface AttributeResolverpublic boolean resolvesToAttributeDict(String x, ActionAST node)
resolvesToAttributeDict in interface AttributeResolverpublic LabelElementPair getAnyLabelDef(String x)
public AttributeDict getPredefinedScope(LabelType ltype)
public boolean isFragment()
Copyright © 1992–2019 ANTLR. All rights reserved.