public Decl getCurrentDeclForName(String name) { if ( getCurrentBlock().locals==null ) return null; for (Decl d : getCurrentBlock().locals.elements()) { if ( d.name.equals(name) ) return d; } return null; }
@Override public Target getTarget() { Target target = getGenerator().getTarget(); assert target != null; return target; }
public Decl getCurrentDeclForName(String name) { if ( getCurrentBlock().locals==null ) return null; for (Decl d : getCurrentBlock().locals.elements()) { if ( d.name.equals(name) ) return d; } return null; }
@Override public List<SrcOp> rulePostamble(RuleFunction function, Rule r) { if ( r.namedActions.containsKey("after") || r.namedActions.containsKey("finally") ) { // See OutputModelController.buildLeftRecursiveRuleFunction // and Parser.exitRule for other places which set stop. CodeGenerator gen = getGenerator(); STGroup codegenTemplates = gen.getTemplates(); ST setStopTokenAST = codegenTemplates.getInstanceOf("recRuleSetStopToken"); Action setStopTokenAction = new Action(this, function.ruleCtx, setStopTokenAST); List<SrcOp> ops = new ArrayList<SrcOp>(1); ops.add(setStopTokenAction); return ops; } return super.rulePostamble(function, r); }
public Decl getCurrentDeclForName(String name) { if ( getCurrentBlock().locals==null ) return null; for (Decl d : getCurrentBlock().locals.elements()) { if ( d.name.equals(name) ) return d; } return null; }
@Override public List<SrcOp> rulePostamble(RuleFunction function, Rule r) { if ( r.namedActions.containsKey("after") || r.namedActions.containsKey("finally") ) { // See OutputModelController.buildLeftRecursiveRuleFunction // and Parser.exitRule for other places which set stop. CodeGenerator gen = getGenerator(); STGroup codegenTemplates = gen.getTemplates(); ST setStopTokenAST = codegenTemplates.getInstanceOf("recRuleSetStopToken"); Action setStopTokenAction = new Action(this, function.ruleCtx, setStopTokenAST); List<SrcOp> ops = new ArrayList<SrcOp>(1); ops.add(setStopTokenAction); return ops; } return super.rulePostamble(function, r); }
public Decl getCurrentDeclForName(String name) { if ( getCurrentBlock().locals==null ) return null; for (Decl d : getCurrentBlock().locals.elements()) { if ( d.name.equals(name) ) return d; } return null; }
@Override public List<SrcOp> rulePostamble(RuleFunction function, Rule r) { if ( r.namedActions.containsKey("after") || r.namedActions.containsKey("finally") ) { // See OutputModelController.buildLeftRecursiveRuleFunction // and Parser.exitRule for other places which set stop. CodeGenerator gen = getGenerator(); STGroup codegenTemplates = gen.getTemplates(); ST setStopTokenAST = codegenTemplates.getInstanceOf("recRuleSetStopToken"); Action setStopTokenAction = new Action(this, function.ruleCtx, setStopTokenAST); List<SrcOp> ops = new ArrayList<SrcOp>(1); ops.add(setStopTokenAction); return ops; } return super.rulePostamble(function, r); }
public void buildNormalRuleFunction(Rule r, RuleFunction function) { CodeGenerator gen = delegate.getGenerator(); // TRIGGER factory functions for rule alts, elements GrammarASTAdaptor adaptor = new GrammarASTAdaptor(r.ast.token.getInputStream()); GrammarAST blk = (GrammarAST)r.ast.getFirstChildWithType(ANTLRParser.BLOCK); CommonTreeNodeStream nodes = new CommonTreeNodeStream(adaptor,blk); walker = new SourceGenTriggers(nodes, this); try { // walk AST of rule alts/elements function.code = DefaultOutputModelFactory.list(walker.block(null, null)); function.hasLookaheadBlock = walker.hasLookaheadBlock; } catch (org.antlr.runtime.RecognitionException e){ e.printStackTrace(System.err); } function.ctxType = delegate.getTarget().getRuleFunctionContextStructName(function); function.postamble = rulePostamble(function, r); }
@Nullable public Decl getCurrentDeclForName(String name) { if ( getCurrentBlock().locals==null ) return null; for (Decl d : getCurrentBlock().locals.elements()) { if ( d.name.equals(name) ) return d; } return null; }
@Override public List<SrcOp> rulePostamble(RuleFunction function, Rule r) { if ( r.namedActions.containsKey("after") || r.namedActions.containsKey("finally") ) { // See OutputModelController.buildLeftRecursiveRuleFunction // and Parser.exitRule for other places which set stop. CodeGenerator gen = getGenerator(); STGroup codegenTemplates = gen.getTemplates(); ST setStopTokenAST = codegenTemplates.getInstanceOf("recRuleSetStopToken"); Action setStopTokenAction = new Action(this, function.ruleCtx, setStopTokenAST); List<SrcOp> ops = new ArrayList<SrcOp>(1); ops.add(setStopTokenAction); return ops; } return super.rulePostamble(function, r); }
public void buildNormalRuleFunction(Rule r, RuleFunction function) { CodeGenerator gen = delegate.getGenerator(); // TRIGGER factory functions for rule alts, elements GrammarASTAdaptor adaptor = new GrammarASTAdaptor(r.ast.token.getInputStream()); GrammarAST blk = (GrammarAST)r.ast.getFirstChildWithType(ANTLRParser.BLOCK); CommonTreeNodeStream nodes = new CommonTreeNodeStream(adaptor,blk); walker = new SourceGenTriggers(nodes, this); try { // walk AST of rule alts/elements function.code = DefaultOutputModelFactory.list(walker.block(null, null)); function.hasLookaheadBlock = walker.hasLookaheadBlock; } catch (org.antlr.runtime.RecognitionException e){ e.printStackTrace(System.err); } function.ctxType = gen.getTarget().getRuleFunctionContextStructName(function); function.postamble = rulePostamble(function, r); }
public void buildNormalRuleFunction(Rule r, RuleFunction function) { CodeGenerator gen = delegate.getGenerator(); // TRIGGER factory functions for rule alts, elements GrammarASTAdaptor adaptor = new GrammarASTAdaptor(r.ast.token.getInputStream()); GrammarAST blk = (GrammarAST)r.ast.getFirstChildWithType(ANTLRParser.BLOCK); CommonTreeNodeStream nodes = new CommonTreeNodeStream(adaptor,blk); walker = new SourceGenTriggers(nodes, this); try { // walk AST of rule alts/elements function.code = DefaultOutputModelFactory.list(walker.block(null, null)); function.hasLookaheadBlock = walker.hasLookaheadBlock; } catch (org.antlr.runtime.RecognitionException e){ e.printStackTrace(System.err); } function.ctxType = gen.getTarget().getRuleFunctionContextStructName(function); function.postamble = rulePostamble(function, r); }
public void buildNormalRuleFunction(Rule r, RuleFunction function) { CodeGenerator gen = delegate.getGenerator(); // TRIGGER factory functions for rule alts, elements GrammarASTAdaptor adaptor = new GrammarASTAdaptor(r.ast.token.getInputStream()); GrammarAST blk = (GrammarAST)r.ast.getFirstChildWithType(ANTLRParser.BLOCK); CommonTreeNodeStream nodes = new CommonTreeNodeStream(adaptor,blk); walker = new SourceGenTriggers(nodes, this); try { // walk AST of rule alts/elements function.code = DefaultOutputModelFactory.list(walker.block(null, null)); function.hasLookaheadBlock = walker.hasLookaheadBlock; } catch (org.antlr.runtime.RecognitionException e){ e.printStackTrace(System.err); } function.ctxType = gen.getTarget().getRuleFunctionContextStructName(function); function.postamble = rulePostamble(function, r); }
public void buildNormalRuleFunction(Rule r, RuleFunction function) { CodeGenerator gen = delegate.getGenerator(); // TRIGGER factory functions for rule alts, elements GrammarASTAdaptor adaptor = new GrammarASTAdaptor(r.ast.token.getInputStream()); GrammarAST blk = (GrammarAST)r.ast.getFirstChildWithType(ANTLRParser.BLOCK); CommonTreeNodeStream nodes = new CommonTreeNodeStream(adaptor,blk); walker = new SourceGenTriggers(nodes, this); try { // walk AST of rule alts/elements function.code = DefaultOutputModelFactory.list(walker.block(null, null)); function.hasLookaheadBlock = walker.hasLookaheadBlock; } catch (org.antlr.runtime.RecognitionException e){ e.printStackTrace(System.err); } function.ctxType = gen.getTarget().getRuleFunctionContextStructName(function); function.postamble = rulePostamble(function, r); }