public override VariableType CodeGen(CodeGenPass pass) { AST ast = Expr; while (ast != null) { VariableType type = ast.CodeGen(pass); if (type != null) { // 表达式的值依然在栈中,要pop出去 pass.Constructor.AddPop(type); } ast = ast.SiblingAST; } return(null); }