public void buildLexerRuleActions(Lexer lexer, final Rule r) { if (r.actions.isEmpty()) { return; } CodeGenerator gen = delegate.getGenerator(); Grammar g = delegate.getGrammar(); String ctxType = gen.getTarget().getRuleFunctionContextStructName(r); RuleActionFunction raf = lexer.actionFuncs.get(r); if ( raf==null ) { raf = new RuleActionFunction(delegate, r, ctxType); } for (ActionAST a : r.actions) { if ( a instanceof PredAST ) { PredAST p = (PredAST)a; RuleSempredFunction rsf = lexer.sempredFuncs.get(r); if ( rsf==null ) { rsf = new RuleSempredFunction(delegate, r, ctxType); lexer.sempredFuncs.put(r, rsf); } rsf.actions.put(g.sempreds.get(p), new Action(delegate, p)); } else if ( a.getType()== ANTLRParser.ACTION ) { raf.actions.put(g.lexerActions.get(a), new Action(delegate, a)); } } if (!raf.actions.isEmpty() && !lexer.actionFuncs.containsKey(r)) { // only add to lexer if the function actually contains actions lexer.actionFuncs.put(r, raf); } }
public void buildLexerRuleActions(Lexer lexer, final Rule r) { if (r.actions.isEmpty()) { return; } CodeGenerator gen = delegate.getGenerator(); Grammar g = delegate.getGrammar(); String ctxType = gen.getTarget().getRuleFunctionContextStructName(r); RuleActionFunction raf = lexer.actionFuncs.get(r); if ( raf==null ) { raf = new RuleActionFunction(delegate, r, ctxType); } for (ActionAST a : r.actions) { if ( a instanceof PredAST ) { PredAST p = (PredAST)a; RuleSempredFunction rsf = lexer.sempredFuncs.get(r); if ( rsf==null ) { rsf = new RuleSempredFunction(delegate, r, ctxType); lexer.sempredFuncs.put(r, rsf); } rsf.actions.put(g.sempreds.get(p), new Action(delegate, p)); } else if ( a.getType()== ANTLRParser.ACTION ) { raf.actions.put(g.lexerActions.get(a), new Action(delegate, a)); } } if (!raf.actions.isEmpty() && !lexer.actionFuncs.containsKey(r)) { // only add to lexer if the function actually contains actions lexer.actionFuncs.put(r, raf); } }
public void buildLexerRuleActions(Lexer lexer, final Rule r) { if (r.actions.isEmpty()) { return; } CodeGenerator gen = delegate.getGenerator(); Grammar g = delegate.getGrammar(); String ctxType = gen.getTarget().getRuleFunctionContextStructName(r); RuleActionFunction raf = lexer.actionFuncs.get(r); if ( raf==null ) { raf = new RuleActionFunction(delegate, r, ctxType); } for (ActionAST a : r.actions) { if ( a instanceof PredAST ) { PredAST p = (PredAST)a; RuleSempredFunction rsf = lexer.sempredFuncs.get(r); if ( rsf==null ) { rsf = new RuleSempredFunction(delegate, r, ctxType); lexer.sempredFuncs.put(r, rsf); } rsf.actions.put(g.sempreds.get(p), new Action(delegate, p)); } else if ( a.getType()== ANTLRParser.ACTION ) { raf.actions.put(g.lexerActions.get(a), new Action(delegate, a)); } } if (!raf.actions.isEmpty() && !lexer.actionFuncs.containsKey(r)) { // only add to lexer if the function actually contains actions lexer.actionFuncs.put(r, raf); } }
public void buildLexerRuleActions(Lexer lexer, final Rule r) { if (r.actions.isEmpty()) { return; } CodeGenerator gen = delegate.getGenerator(); Grammar g = delegate.getGrammar(); String ctxType = delegate.getTarget().getRuleFunctionContextStructName(r); RuleActionFunction raf = lexer.actionFuncs.get(r); if ( raf==null ) { raf = new RuleActionFunction(delegate, r, ctxType); } for (ActionAST a : r.actions) { if ( a instanceof PredAST ) { PredAST p = (PredAST)a; RuleSempredFunction rsf = lexer.sempredFuncs.get(r); if ( rsf==null ) { rsf = new RuleSempredFunction(delegate, r, ctxType); lexer.sempredFuncs.put(r, rsf); } rsf.actions.put(g.sempreds.get(p), new Action(delegate, p)); } else if ( a.getType()== ANTLRParser.ACTION ) { raf.actions.put(g.lexerActions.get(a), new Action(delegate, a)); } } if (!raf.actions.isEmpty() && !lexer.actionFuncs.containsKey(r)) { // only add to lexer if the function actually contains actions lexer.actionFuncs.put(r, raf); } }
public void buildLexerRuleActions(Lexer lexer, final Rule r) { if (r.actions.isEmpty()) { return; } CodeGenerator gen = delegate.getGenerator(); Grammar g = delegate.getGrammar(); String ctxType = gen.getTarget().getRuleFunctionContextStructName(r); RuleActionFunction raf = lexer.actionFuncs.get(r); if ( raf==null ) { raf = new RuleActionFunction(delegate, r, ctxType); } for (ActionAST a : r.actions) { if ( a instanceof PredAST ) { PredAST p = (PredAST)a; RuleSempredFunction rsf = lexer.sempredFuncs.get(r); if ( rsf==null ) { rsf = new RuleSempredFunction(delegate, r, ctxType); lexer.sempredFuncs.put(r, rsf); } rsf.actions.put(g.sempreds.get(p), new Action(delegate, p)); } else if ( a.getType()== ANTLRParser.ACTION ) { raf.actions.put(g.lexerActions.get(a), new Action(delegate, a)); } } if (!raf.actions.isEmpty() && !lexer.actionFuncs.containsKey(r)) { // only add to lexer if the function actually contains actions lexer.actionFuncs.put(r, raf); } }
/** Create RuleFunction per rule and update sempreds,actions of parser * output object with stuff found in r. */ public void buildRuleFunction(Parser parser, Rule r) { RuleFunction function = rule(r); parser.funcs.add(function); pushCurrentRule(function); function.fillNamedActions(delegate, r); if ( r instanceof LeftRecursiveRule ) { buildLeftRecursiveRuleFunction((LeftRecursiveRule)r, (LeftRecursiveRuleFunction)function); } else { buildNormalRuleFunction(r, function); } Grammar g = getGrammar(); for (ActionAST a : r.actions) { if ( a instanceof PredAST ) { PredAST p = (PredAST)a; RuleSempredFunction rsf = parser.sempredFuncs.get(r); if ( rsf==null ) { rsf = new RuleSempredFunction(delegate, r, function.ctxType); parser.sempredFuncs.put(r, rsf); } rsf.actions.put(g.sempreds.get(p), new Action(delegate, p)); } } popCurrentRule(); }
/** Create RuleFunction per rule and update sempreds,actions of parser * output object with stuff found in r. */ public void buildRuleFunction(Parser parser, Rule r) { RuleFunction function = rule(r); parser.funcs.add(function); pushCurrentRule(function); function.fillNamedActions(delegate, r); if ( r instanceof LeftRecursiveRule ) { buildLeftRecursiveRuleFunction((LeftRecursiveRule)r, (LeftRecursiveRuleFunction)function); } else { buildNormalRuleFunction(r, function); } Grammar g = getGrammar(); for (ActionAST a : r.actions) { if ( a instanceof PredAST ) { PredAST p = (PredAST)a; RuleSempredFunction rsf = parser.sempredFuncs.get(r); if ( rsf==null ) { rsf = new RuleSempredFunction(delegate, r, function.ctxType); parser.sempredFuncs.put(r, rsf); } rsf.actions.put(g.sempreds.get(p), new Action(delegate, p)); } } popCurrentRule(); }
/** Create RuleFunction per rule and update sempreds,actions of parser * output object with stuff found in r. */ public void buildRuleFunction(Parser parser, Rule r) { RuleFunction function = rule(r); parser.funcs.add(function); pushCurrentRule(function); function.fillNamedActions(delegate, r); if ( r instanceof LeftRecursiveRule ) { buildLeftRecursiveRuleFunction((LeftRecursiveRule)r, (LeftRecursiveRuleFunction)function); } else { buildNormalRuleFunction(r, function); } Grammar g = getGrammar(); for (ActionAST a : r.actions) { if ( a instanceof PredAST ) { PredAST p = (PredAST)a; RuleSempredFunction rsf = parser.sempredFuncs.get(r); if ( rsf==null ) { rsf = new RuleSempredFunction(delegate, r, function.ctxType); parser.sempredFuncs.put(r, rsf); } rsf.actions.put(g.sempreds.get(p), new Action(delegate, p)); } } popCurrentRule(); }
/** Create RuleFunction per rule and update sempreds,actions of parser * output object with stuff found in r. */ public void buildRuleFunction(Parser parser, Rule r) { RuleFunction function = rule(r); parser.funcs.add(function); pushCurrentRule(function); function.fillNamedActions(delegate, r); if ( r instanceof LeftRecursiveRule ) { buildLeftRecursiveRuleFunction((LeftRecursiveRule)r, (LeftRecursiveRuleFunction)function); } else { buildNormalRuleFunction(r, function); } Grammar g = getGrammar(); for (ActionAST a : r.actions) { if ( a instanceof PredAST ) { PredAST p = (PredAST)a; RuleSempredFunction rsf = parser.sempredFuncs.get(r); if ( rsf==null ) { rsf = new RuleSempredFunction(delegate, r, function.ctxType); parser.sempredFuncs.put(r, rsf); } rsf.actions.put(g.sempreds.get(p), new Action(delegate, p)); } } popCurrentRule(); }
/** Create RuleFunction per rule and update sempreds,actions of parser * output object with stuff found in r. */ public void buildRuleFunction(Parser parser, Rule r) { RuleFunction function = rule(r); parser.funcs.add(function); pushCurrentRule(function); function.fillNamedActions(delegate, r); if ( r instanceof LeftRecursiveRule ) { buildLeftRecursiveRuleFunction((LeftRecursiveRule)r, (LeftRecursiveRuleFunction)function); } else { buildNormalRuleFunction(r, function); } Grammar g = getGrammar(); for (ActionAST a : r.actions) { if ( a instanceof PredAST ) { PredAST p = (PredAST)a; RuleSempredFunction rsf = parser.sempredFuncs.get(r); if ( rsf==null ) { rsf = new RuleSempredFunction(delegate, r, function.ctxType); parser.sempredFuncs.put(r, rsf); } rsf.actions.put(g.sempreds.get(p), new Action(delegate, p)); } } popCurrentRule(); }