예제 #1
0
        void IFELSTMT(out AST e)
        {
            List <AST> stm, stm2 = new List <AST>(); AST els = null;

            Expect(17);
            LOGI_EXPR(out AST logi);
            Expect(18);
            BLOCK(out stm);
            if (la.kind == 24)
            {
                Get();
                if (la.kind == 10)
                {
                    BLOCK(out stm2);
                    els = new ElseStmt(stm2);
                }
                else if (la.kind == 15)
                {
                    Get();
                    IFELSTMT(out els);
                }
                else
                {
                    SynErr(56);
                }
            }
            e = new IfStmt(logi, stm, els);
        }
예제 #2
0
파일: Visitor.cs 프로젝트: mkju19/P4
 public abstract void Visit(IfStmt n);