public List<SrcOp> action(ActionAST ast) { List<SrcOp> ops = delegate.action(ast); for (CodeGeneratorExtension ext : extensions) ops = ext.action(ops); return ops; }
public CodeBlockForAlt alternative(Alternative alt, boolean outerMost) { CodeBlockForAlt blk = delegate.alternative(alt, outerMost); if ( outerMost ) { currentOuterMostAlternativeBlock = (CodeBlockForOuterMostAlt)blk; } for (CodeGeneratorExtension ext : extensions) blk = ext.alternative(blk, outerMost); return blk; }
public CodeBlockForAlt epsilon(Alternative alt, boolean outerMost) { CodeBlockForAlt blk = delegate.epsilon(alt, outerMost); for (CodeGeneratorExtension ext : extensions) blk = ext.epsilon(blk); return blk; }
public SrcOp(OutputModelFactory factory, GrammarAST ast) { super(factory,ast); if ( ast!=null ) uniqueID = ast.token.getTokenIndex(); enclosingBlock = factory.getCurrentBlock(); enclosingRuleRunction = factory.getCurrentRuleFunction(); }
public List<String[]> getAltLookaheadAsStringLists(IntervalSet[] altLookSets) { List<String[]> altLook = new ArrayList<String[]>(); for (IntervalSet s : altLookSets) { altLook.add(factory.getGenerator().getTarget().getTokenTypesAsTargetLabels(factory.getGrammar(), s.toArray())); } return altLook; }
public MatchSet(OutputModelFactory factory, GrammarAST ast) { super(factory, ast); SetTransition st = (SetTransition)ast.atnState.transition(0); int wordSize = factory.getGenerator().getTarget().getInlineTestSetWordSize(); expr = new TestSetInline(factory, null, st.set, wordSize); Decl d = new TokenTypeDecl(factory, expr.varName); factory.getCurrentRuleFunction().addLocalDecl(d); capture = new CaptureNextTokenType(factory,expr.varName); } }
public TestSetInline addCodeForLookaheadTempVar(IntervalSet look) { List<SrcOp> testOps = factory.getLL1Test(look, ast); TestSetInline expr = Utils.find(testOps, TestSetInline.class); if (expr != null) { Decl d = new TokenTypeDecl(factory, expr.varName); factory.getCurrentRuleFunction().addLocalDecl(d); CaptureNextTokenType nextType = new CaptureNextTokenType(factory,expr.varName); addPreambleOp(nextType); } return expr; }
public LexerFile(OutputModelFactory factory, String fileName) { super(factory, fileName); namedActions = buildNamedActions(factory.getGrammar()); genPackage = factory.getGrammar().tool.genPackage; exportMacro = factory.getGrammar().getOptionString("exportMacro"); genListener = factory.getGrammar().tool.gen_listener; genVisitor = factory.getGrammar().tool.gen_visitor; } }
public ActionTranslator(OutputModelFactory factory, ActionAST node) { this.factory = factory; this.node = node; this.gen = factory.getGenerator(); }
public Action(OutputModelFactory factory, ActionAST ast) { super(factory,ast); RuleFunction rf = factory.getCurrentRuleFunction(); if (ast != null) { chunks = ActionTranslator.translateAction(factory, rf, ast.token, ast); } else { chunks = new ArrayList<ActionChunk>(); } //System.out.println("actions="+chunks); }
public SemPred(OutputModelFactory factory, @NotNull ActionAST ast) { super(factory,ast); assert ast.atnState != null && ast.atnState.getNumberOfTransitions() == 1 && ast.atnState.transition(0) instanceof AbstractPredicateTransition; GrammarAST failNode = ast.getOptionAST("fail"); predicate = ast.getText(); if (predicate.startsWith("{") && predicate.endsWith("}?")) { predicate = predicate.substring(1, predicate.length() - 2); } predicate = factory.getTarget().getTargetStringLiteralFromString(predicate); if ( failNode==null ) return; if ( failNode instanceof ActionAST ) { ActionAST failActionNode = (ActionAST)failNode; RuleFunction rf = factory.getCurrentRuleFunction(); failChunks = ActionTranslator.translateAction(factory, rf, failActionNode.token, failActionNode); } else { msg = factory.getTarget().getTargetStringLiteralFromANTLRStringLiteral(factory.getGenerator(), failNode.getText(), true); } } }
public Choice getChoiceBlock(BlockAST blkAST, List<CodeBlockForAlt> alts, GrammarAST label) { Choice c = delegate.getChoiceBlock(blkAST, alts, label); for (CodeGeneratorExtension ext : extensions) c = ext.getChoiceBlock(c); return c; }
public Choice getEBNFBlock(GrammarAST ebnfRoot, List<CodeBlockForAlt> alts) { Choice c = delegate.getEBNFBlock(ebnfRoot, alts); for (CodeGeneratorExtension ext : extensions) c = ext.getEBNFBlock(c); return c; }
public CodeBlockForAlt finishAlternative(CodeBlockForAlt blk, List<SrcOp> ops, boolean outerMost) { blk = delegate.finishAlternative(blk, ops); for (CodeGeneratorExtension ext : extensions) blk = ext.finishAlternative(blk, outerMost); return blk; }
public MatchToken(OutputModelFactory factory, TerminalAST ast) { super(factory, ast); Grammar g = factory.getGrammar(); ttype = g.getTokenType(ast.getText()); name = factory.getTarget().getTokenTypeAsTargetLabel(g, ttype); }
public List<String[]> getAltLookaheadAsStringLists(IntervalSet[] altLookSets) { List<String[]> altLook = new ArrayList<String[]>(); for (IntervalSet s : altLookSets) { altLook.add(factory.getGenerator().getTarget().getTokenTypesAsTargetLabels(factory.getGrammar(), s.toArray())); } return altLook; }
public MatchSet(OutputModelFactory factory, GrammarAST ast) { super(factory, ast); SetTransition st = (SetTransition)ast.atnState.transition(0); int wordSize = factory.getGenerator().getTarget().getInlineTestSetWordSize(); expr = new TestSetInline(factory, null, st.set, wordSize); Decl d = new TokenTypeDecl(factory, expr.varName); factory.getCurrentRuleFunction().addLocalDecl(d); capture = new CaptureNextTokenType(factory,expr.varName); } }
public SrcOp(OutputModelFactory factory, GrammarAST ast) { super(factory,ast); if ( ast!=null ) uniqueID = ast.token.getTokenIndex(); enclosingBlock = factory.getCurrentBlock(); enclosingRuleRunction = factory.getCurrentRuleFunction(); }
public TestSetInline addCodeForLookaheadTempVar(IntervalSet look) { List<SrcOp> testOps = factory.getLL1Test(look, ast); TestSetInline expr = Utils.find(testOps, TestSetInline.class); if (expr != null) { Decl d = new TokenTypeDecl(factory, expr.varName); factory.getCurrentRuleFunction().addLocalDecl(d); CaptureNextTokenType nextType = new CaptureNextTokenType(factory,expr.varName); addPreambleOp(nextType); } return expr; }
public LexerFile(OutputModelFactory factory, String fileName) { super(factory, fileName); namedActions = buildNamedActions(factory.getGrammar()); genPackage = factory.getGrammar().tool.genPackage; exportMacro = factory.getGrammar().getOptionString("exportMacro"); genListener = factory.getGrammar().tool.gen_listener; genVisitor = factory.getGrammar().tool.gen_visitor; } }