Beispiel #1
0
 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);
 }
Beispiel #2
0
 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;
 }