virtual public void foreach_statement(foreach_statement ast, int indent) { // Write("foreach (", indent); // visit(ast.ty); // Write(" {0} in ", ast.id.str); // visit(ast.expr); // Write(")"); // statement(ast.body, indent + 1); }
public virtual bool is_try(AST s) { if (s is try_statement || s is catch_clauses || s is using_statement || s is lock_statement) { return(true); } if (s is foreach_statement) { foreach_statement ast = (foreach_statement)s; if (ast.expr.typ is ArrayType) { return(false); } if (ast.GetEnumerator.Type.Implements(T.IDisposable) || !ast.GetEnumerator.Type.Is("sealed")) { return(true); } } return(false); }
public virtual void foreach_statement(foreach_statement ast) { statement(ast.body); ast.expr = expression(ast.expr); }