protected String getBaseContextName(String ruleName) { Rule referencedRule = rules.get(ruleName); if (referencedRule != null) { ruleName = referencedRule.getBaseContext(); } return ruleName; }
public static String getLabelName(Grammar g, GrammarAST t) { String tokenText = t.getText(); String tokenName = t.getType() != STRING_LITERAL ? tokenText : g.getTokenName(tokenText); if (tokenName == null || tokenName.startsWith("T__")) { // Do not include tokens with auto generated names return null; } String labelName = tokenName; Rule referencedRule = g.rules.get(labelName); if (referencedRule != null) { labelName = referencedRule.getBaseContext(); } return labelName; }
visitorNames.add(r.getBaseContext());
listenerNames.add(r.getBaseContext());
if (r.name.equals(r.getBaseContext())) { ruleCtx = new StructDecl(factory, r); addContextGetters(factory, r.g.contextASTs.get(r.name));
baseContexts.map(r.getBaseContext(), r); Rule targetRule = ruleCollector.rules.get(r.getBaseContext()); boolean targetSpecifiesBaseContext = targetRule != null && targetRule.ast != null && (targetRule.ast.getOptionAST("baseContext") != null || !targetRule.name.equals(targetRule.getBaseContext())); if (!ruleCollector.rules.containsKey(r.getBaseContext())) { Token errorToken; if (optionAST != null) {
public String getRuleFunctionContextStructName(Rule r) { if ( r.g.isLexer() ) { return getTemplates().getInstanceOf("LexerRuleContext").render(); } String baseName = r.getBaseContext(); return Utils.capitalize(baseName)+getTemplates().getInstanceOf("RuleContextNameSuffix").render(); }
/** If we know which actual function, we can provide the actual ctx type. * This will contain implicit labels etc... From outside, though, we * see only ParserRuleContext unless there are externally visible stuff * like args, locals, explicit labels, etc... */ public String getRuleFunctionContextStructName(RuleFunction function) { Rule r = function.rule; if ( r.g.isLexer() ) { return getTemplates().getInstanceOf("LexerRuleContext").render(); } String baseName = r.getBaseContext(); return Utils.capitalize(baseName)+getTemplates().getInstanceOf("RuleContextNameSuffix").render(); }
List<RuleAST> list = g.contextASTs.get(rule.getBaseContext()); if (list == null) { list = new ArrayList<RuleAST>(); g.contextASTs.put(rule.getBaseContext(), list);