public MatchSet(OutputModelFactory factory, GrammarAST ast) : base(factory, ast) { SetTransition st = (SetTransition)ast.atnState.Transition(0); int wordSize = factory.GetGenerator().GetTarget().GetInlineTestSetWordSize(); expr = new TestSetInline(factory, null, st.set, wordSize); Decl.Decl d = new TokenTypeDecl(factory, expr.varName); factory.GetCurrentRuleFunction().AddLocalDecl(d); capture = new CaptureNextTokenType(factory, expr.varName); }
public virtual TestSetInline AddCodeForLookaheadTempVar(IntervalSet look) { IList <SrcOp> testOps = factory.GetLL1Test(look, ast); TestSetInline expr = Utils.Find <TestSetInline>(testOps); if (expr != null) { Decl.Decl d = new TokenTypeDecl(factory, expr.varName); factory.GetCurrentRuleFunction().AddLocalDecl(d); CaptureNextTokenType nextType = new CaptureNextTokenType(factory, expr.varName); AddPreambleOp(nextType); } return(expr); }