AST.CaseStmt.GetStmt C# (CSharp) Метод

GetStmt() публичный Метод

public GetStmt ( ABT env ) : ABT.Stmt>.Tuple
env ABT
Результат ABT.Stmt>.Tuple
        public override Tuple<ABT.Env, ABT.Stmt> GetStmt(ABT.Env env) {
            ABT.Expr expr = this.Expr.GetExpr(env);
            env = expr.Env;

            expr = ABT.TypeCast.MakeCast(expr, new ABT.LongType());
            if (!expr.IsConstExpr) {
                throw new InvalidOperationException("case Expr not const");
            }
            Int32 value = ((ABT.ConstLong)expr).Value;

            Tuple<ABT.Env, ABT.Stmt> r_stmt = this.Stmt.GetStmt(env);
            env = r_stmt.Item1;

            return new Tuple<ABT.Env, ABT.Stmt>(env, new ABT.CaseStmt(value, r_stmt.Item2));
        }
    }