コード例 #1
0
 public void Verify()
 {
     Condition.Verify();
     VarTab.PushScope();
     Statements.ForEach(stmt => stmt.Verify());
     VarTab.PopScope();
 }
コード例 #2
0
 public void Verify()
 {
     Condition.Verify();
     VarTab.PushScope();
     IfBlock.ForEach(stmt => stmt.Verify());
     VarTab.PopScope();
     VarTab.PushScope();
     ElseBlock.ForEach(stmt => stmt.Verify());
     VarTab.PopScope();
 }
コード例 #3
0
        public void Verify()
        {
            FuncState.PushFunc(ReturnType);
            VarTab.PushScope();
            Params.ForEach(par => VarTab.Add(par.Id, par.Type));
            Stmts.ForEach(stmt => stmt.Verify());
            VarTab.PopScope();
            FuncState.PopFunc();

            VarTab.Add(Id, new TypeSpec
            {
                Base = new Function
                {
                    Types      = Params,
                    ReturnType = ReturnType
                }
            });
        }