Example #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);
        }
Example #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);
        }