/* valatraversevisitor.vala * * Copyright (C) 2012 Luca Bruno * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * Author: * Luca Bruno */ /** * Code visitor for traversing the tree with a simple callback */ public class Vala.TraverseVisitor : CodeVisitor { private TraverseFunc func; public TraverseVisitor (owned TraverseFunc func) { this.func = (owned) func; } public override void visit_namespace (Namespace ns) { if (func (ns) == TraverseStatus.CONTINUE) { ns.accept_children (this); } } public override void visit_class (Class cl) { if (func (cl) == TraverseStatus.CONTINUE) { cl.accept_children (this); } } public override void visit_struct (Struct st) { if (func (st) == TraverseStatus.CONTINUE) { st.accept_children (this); } } public override void visit_interface (Interface iface) { if (func (iface) == TraverseStatus.CONTINUE) { iface.accept_children (this); } } public override void visit_enum (Enum en) { if (func (en) == TraverseStatus.CONTINUE) { en.accept_children (this); } } public override void visit_enum_value (EnumValue ev) { if (func (ev) == TraverseStatus.CONTINUE) { ev.accept_children (this); } } public override void visit_error_domain (ErrorDomain edomain) { if (func (edomain) == TraverseStatus.CONTINUE) { edomain.accept_children (this); } } public override void visit_error_code (ErrorCode ecode) { if (func (ecode) == TraverseStatus.CONTINUE) { ecode.accept_children (this); } } public override void visit_delegate (Delegate d) { if (func (d) == TraverseStatus.CONTINUE) { d.accept_children (this); } } public override void visit_constant (Constant c) { if (func (c) == TraverseStatus.CONTINUE) { c.accept_children (this); } } public override void visit_field (Field f) { if (func (f) == TraverseStatus.CONTINUE) { f.accept_children (this); } } public override void visit_method (Method m) { if (func (m) == TraverseStatus.CONTINUE) { m.accept_children (this); } } public override void visit_creation_method (CreationMethod m) { if (func (m) == TraverseStatus.CONTINUE) { m.accept_children (this); } } public override void visit_formal_parameter (Parameter p) { if (func (p) == TraverseStatus.CONTINUE) { p.accept_children (this); } } public override void visit_property (Property prop) { if (func (prop) == TraverseStatus.CONTINUE) { prop.accept_children (this); } } public override void visit_property_accessor (PropertyAccessor acc) { if (func (acc) == TraverseStatus.CONTINUE) { acc.accept_children (this); } } public override void visit_signal (Signal sig) { if (func (sig) == TraverseStatus.CONTINUE) { sig.accept_children (this); } } public override void visit_constructor (Constructor c) { if (func (c) == TraverseStatus.CONTINUE) { c.accept_children (this); } } public override void visit_destructor (Destructor d) { if (func (d) == TraverseStatus.CONTINUE) { d.accept_children (this); } } public override void visit_block (Block b) { if (func (b) == TraverseStatus.CONTINUE) { b.accept_children (this); } } public override void visit_data_type (DataType data_type) { if (func (data_type) == TraverseStatus.CONTINUE) { data_type.accept_children (this); } } public override void visit_declaration_statement (DeclarationStatement stmt) { if (func (stmt) == TraverseStatus.CONTINUE) { stmt.accept_children (this); } } public override void visit_local_variable (LocalVariable local) { if (func (local) == TraverseStatus.CONTINUE) { local.accept_children (this); } } public override void visit_initializer_list (InitializerList list) { if (func (list) == TraverseStatus.CONTINUE) { list.accept_children (this); } } public override void visit_expression_statement (ExpressionStatement stmt) { if (func (stmt) == TraverseStatus.CONTINUE) { stmt.accept_children (this); } } public override void visit_if_statement (IfStatement stmt) { if (func (stmt) == TraverseStatus.CONTINUE) { stmt.accept_children (this); } } public override void visit_switch_statement (SwitchStatement stmt) { if (func (stmt) == TraverseStatus.CONTINUE) { stmt.accept_children (this); } } public override void visit_switch_section (SwitchSection section) { if (func (section) == TraverseStatus.CONTINUE) { section.accept_children (this); } } public override void visit_switch_label (SwitchLabel label) { if (func (label) == TraverseStatus.CONTINUE) { label.accept_children (this); } } public override void visit_loop_statement (LoopStatement loop) { if (func (loop) == TraverseStatus.CONTINUE) { loop.accept_children (this); } } public override void visit_while_statement (WhileStatement stmt) { if (func (stmt) == TraverseStatus.CONTINUE) { stmt.accept_children (this); } } public override void visit_do_statement (DoStatement stmt) { if (func (stmt) == TraverseStatus.CONTINUE) { stmt.accept_children (this); } } public override void visit_for_statement (ForStatement stmt) { if (func (stmt) == TraverseStatus.CONTINUE) { stmt.accept_children (this); } } public override void visit_foreach_statement (ForeachStatement stmt) { if (func (stmt) == TraverseStatus.CONTINUE) { stmt.accept_children (this); } } public override void visit_break_statement (BreakStatement stmt) { if (func (stmt) == TraverseStatus.CONTINUE) { stmt.accept_children (this); } } public override void visit_continue_statement (ContinueStatement stmt) { if (func (stmt) == TraverseStatus.CONTINUE) { stmt.accept_children (this); } } public override void visit_return_statement (ReturnStatement stmt) { if (func (stmt) == TraverseStatus.CONTINUE) { stmt.accept_children (this); } } public override void visit_yield_statement (YieldStatement stmt) { if (func (stmt) == TraverseStatus.CONTINUE) { stmt.accept_children (this); } } public override void visit_throw_statement (ThrowStatement stmt) { if (func (stmt) == TraverseStatus.CONTINUE) { stmt.accept_children (this); } } public override void visit_try_statement (TryStatement stmt) { if (func (stmt) == TraverseStatus.CONTINUE) { stmt.accept_children (this); } } public override void visit_catch_clause (CatchClause clause) { if (func (clause) == TraverseStatus.CONTINUE) { clause.accept_children (this); } } public override void visit_lock_statement (LockStatement stmt) { if (func (stmt) == TraverseStatus.CONTINUE) { stmt.accept_children (this); } } public override void visit_unlock_statement (UnlockStatement stmt) { if (func (stmt) == TraverseStatus.CONTINUE) { stmt.accept_children (this); } } public override void visit_with_statement (WithStatement stmt) { if (func (stmt) == TraverseStatus.CONTINUE) { stmt.accept_children (this); } } public override void visit_delete_statement (DeleteStatement stmt) { if (func (stmt) == TraverseStatus.CONTINUE) { stmt.accept_children (this); } } public override void visit_member_access (MemberAccess expr) { if (func (expr) == TraverseStatus.CONTINUE) { expr.accept_children (this); } } public override void visit_assignment (Assignment expr) { if (func (expr) == TraverseStatus.CONTINUE) { expr.accept_children (this); } } public override void visit_method_call (MethodCall expr) { if (func (expr) == TraverseStatus.CONTINUE) { expr.accept_children (this); } } public override void visit_conditional_expression (ConditionalExpression expr) { if (func (expr) == TraverseStatus.CONTINUE) { expr.accept_children (this); } } public override void visit_binary_expression (BinaryExpression expr) { if (func (expr) == TraverseStatus.CONTINUE) { expr.accept_children (this); } } public override void visit_unary_expression (UnaryExpression expr) { if (func (expr) == TraverseStatus.CONTINUE) { expr.accept_children (this); } } public override void visit_reference_transfer_expression (ReferenceTransferExpression expr) { if (func (expr) == TraverseStatus.CONTINUE) { expr.accept_children (this); } } public override void visit_object_creation_expression (ObjectCreationExpression expr) { if (func (expr) == TraverseStatus.CONTINUE) { expr.accept_children (this); } } public override void visit_postfix_expression (PostfixExpression expr) { if (func (expr) == TraverseStatus.CONTINUE) { expr.accept_children (this); } } public override void visit_array_creation_expression (ArrayCreationExpression expr) { if (func (expr) == TraverseStatus.CONTINUE) { expr.accept_children (this); } } public override void visit_cast_expression (CastExpression expr) { if (func (expr) == TraverseStatus.CONTINUE) { expr.accept_children (this); } } public override void visit_element_access (ElementAccess expr) { if (func (expr) == TraverseStatus.CONTINUE) { expr.accept_children (this); } } public override void visit_lambda_expression (LambdaExpression expr) { if (func (expr) == TraverseStatus.CONTINUE) { expr.accept_children (this); } } public override void visit_pointer_indirection (PointerIndirection expr) { if (func (expr) == TraverseStatus.CONTINUE) { expr.accept_children (this); } } public override void visit_addressof_expression (AddressofExpression expr) { if (func (expr) == TraverseStatus.CONTINUE) { expr.accept_children (this); } } public override void visit_slice_expression (SliceExpression expr) { if (func (expr) == TraverseStatus.CONTINUE) { expr.accept_children (this); } } } public enum Vala.TraverseStatus { STOP, CONTINUE } public delegate Vala.TraverseStatus Vala.TraverseFunc (CodeNode node);