class AdLint::Cc1::SyntaxTreeVisitor

Public Instance Methods

visit_abbreviated_function_declarator(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4800
def visit_abbreviated_function_declarator(node)
  node.base.accept(self)
end
visit_additive_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4627
def visit_additive_expression(node)
  node.lhs_operand.accept(self)
  node.rhs_operand.accept(self)
end
visit_address_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4589
def visit_address_expression(node)
  node.operand.accept(self)
end
visit_alignof_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4609
def visit_alignof_expression(node)
  node.operand.accept(self)
end
visit_alignof_type_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4613
def visit_alignof_type_expression(node)
  node.operand.accept(self)
end
visit_and_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4647
def visit_and_expression(node)
  node.lhs_operand.accept(self)
  node.rhs_operand.accept(self)
end
visit_ansi_function_declarator(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4791
def visit_ansi_function_declarator(node)
  node.base.accept(self)
  node.parameter_type_list.accept(self)
end
visit_ansi_function_definition(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4902
def visit_ansi_function_definition(node)
  node.declaration_specifiers.accept(self) if node.declaration_specifiers
  node.declarator.accept(self)
  node.parameter_definitions.each { |param_def| param_def.accept(self) }
  node.function_body.accept(self)
  node.type_declaration.accept(self) if node.type_declaration
end
visit_array_abstract_declarator(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4927
def visit_array_abstract_declarator(node)
  node.base.accept(self) if node.base
  node.size_expression.accept(self) if node.size_expression
end
visit_array_declarator(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4786
def visit_array_declarator(node)
  node.base.accept(self)
  node.size_expression.accept(self) if node.size_expression
end
visit_array_subscript_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4542
def visit_array_subscript_expression(node)
  node.expression.accept(self)
  node.array_subscript.accept(self)
end
visit_bit_access_by_pointer_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4564
def visit_bit_access_by_pointer_expression(node)
  node.expression.accept(self)
end
visit_bit_access_by_value_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4560
def visit_bit_access_by_value_expression(node)
  node.expression.accept(self)
end
visit_break_statement(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4883
def visit_break_statement(node)
end
visit_c99_for_statement(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4870
def visit_c99_for_statement(node)
  node.declaration.accept(self)
  node.condition_statement.accept(self)
  node.expression.accept(self) if node.expression
  node.body_statement.accept(self)
end
visit_case_labeled_statement(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4820
def visit_case_labeled_statement(node)
  node.expression.accept(self)
  node.statement.accept(self)
end
visit_cast_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4617
def visit_cast_expression(node)
  node.type_name.accept(self)
  node.operand.accept(self)
end
visit_comma_separated_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4688
def visit_comma_separated_expression(node)
  node.expressions.each { |expr| expr.accept(self) }
end
visit_compound_assignment_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4683
def visit_compound_assignment_expression(node)
  node.lhs_operand.accept(self)
  node.rhs_operand.accept(self)
end
visit_compound_literal_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4576
def visit_compound_literal_expression(node)
  node.type_name.accept(self) if node.type_name
  node.initializers.each { |init| init.accept(self) }
end
visit_compound_statement(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4829
def visit_compound_statement(node)
  node.block_items.each { |item| item.accept(self) }
end
visit_conditional_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4672
def visit_conditional_expression(node)
  node.condition.accept(self)
  node.then_expression.accept(self)
  node.else_expression.accept(self)
end
visit_constant_specifier(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4529
def visit_constant_specifier(node)
end
visit_continue_statement(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4880
def visit_continue_statement(node)
end
visit_declaration(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4692
def visit_declaration(node)
  node.declaration_specifiers.accept(self) if node.declaration_specifiers
  node.init_declarators.each { |dcr| dcr.accept(self) }
  node.items.each { |item| item.accept(self) }
end
visit_declaration_specifiers(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4719
def visit_declaration_specifiers(node)
  node.type_specifiers.each { |type_spec| type_spec.accept(self) }
end
visit_default_labeled_statement(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4825
def visit_default_labeled_statement(node)
  node.statement.accept(self)
end
visit_do_statement(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4858
def visit_do_statement(node)
  node.statement.accept(self)
  node.expression.accept(self)
end
visit_enum_specifier(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4764
def visit_enum_specifier(node)
  if node.enumerators
    node.enumerators.each { |enum| enum.accept(self) }
  end
end
visit_enum_type_declaration(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4716
def visit_enum_type_declaration(node)
end
visit_enumerator(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4770
def visit_enumerator(node)
  node.expression.accept(self) if node.expression
end
visit_equality_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4642
def visit_equality_expression(node)
  node.lhs_operand.accept(self)
  node.rhs_operand.accept(self)
end
visit_error_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4523
def visit_error_expression(node)
end
visit_error_statement(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4813
def visit_error_statement(node)
end
visit_exclusive_or_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4652
def visit_exclusive_or_expression(node)
  node.lhs_operand.accept(self)
  node.rhs_operand.accept(self)
end
visit_expression_statement(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4833
def visit_expression_statement(node)
  node.expression.accept(self) if node.expression
end
visit_for_statement(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4863
def visit_for_statement(node)
  node.initial_statement.accept(self)
  node.condition_statement.accept(self)
  node.expression.accept(self) if node.expression
  node.body_statement.accept(self)
end
visit_function_abstract_declarator(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4932
def visit_function_abstract_declarator(node)
  node.base.accept(self) if node.base
  node.parameter_type_list.accept(self) if node.parameter_type_list
end
visit_function_call_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4547
def visit_function_call_expression(node)
  node.expression.accept(self)
  node.argument_expressions.each { |expr| expr.accept(self) }
end
visit_function_declaration(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4698
def visit_function_declaration(node)
end
visit_generic_labeled_statement(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4816
def visit_generic_labeled_statement(node)
  node.statement.accept(self)
end
visit_goto_statement(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4877
def visit_goto_statement(node)
end
visit_grouped_abstract_declarator(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4923
def visit_grouped_abstract_declarator(node)
  node.base.accept(self)
end
visit_grouped_declarator(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4782
def visit_grouped_declarator(node)
  node.base.accept(self)
end
visit_grouped_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4538
def visit_grouped_expression(node)
  node.expression.accept(self)
end
visit_identifier_declarator(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4779
def visit_identifier_declarator(node)
end
visit_if_else_statement(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4842
def visit_if_else_statement(node)
  node.expression.accept(self)
  node.then_statement.accept(self)
  node.else_statement.accept(self)
end
visit_if_statement(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4837
def visit_if_statement(node)
  node.expression.accept(self)
  node.statement.accept(self)
end
visit_inclusive_or_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4657
def visit_inclusive_or_expression(node)
  node.lhs_operand.accept(self)
  node.rhs_operand.accept(self)
end
visit_indirection_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4593
def visit_indirection_expression(node)
  node.operand.accept(self)
end
visit_init_declarator(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4723
def visit_init_declarator(node)
  node.declarator.accept(self)
  node.initializer.accept(self) if node.initializer
end
visit_initializer(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4937
def visit_initializer(node)
  case
  when node.expression
    node.expression.accept(self)
  when node.initializers
    node.initializers.each { |init| init.accept(self) }
  end
end
visit_kandr_function_declarator(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4796
def visit_kandr_function_declarator(node)
  node.base.accept(self)
end
visit_kandr_function_definition(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4894
def visit_kandr_function_definition(node)
  node.declaration_specifiers.accept(self) if node.declaration_specifiers
  node.declarator.accept(self)
  node.parameter_definitions.each { |param_def| param_def.accept(self) }
  node.function_body.accept(self)
  node.type_declaration.accept(self) if node.type_declaration
end
visit_logical_and_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4662
def visit_logical_and_expression(node)
  node.lhs_operand.accept(self)
  node.rhs_operand.accept(self)
end
visit_logical_or_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4667
def visit_logical_or_expression(node)
  node.lhs_operand.accept(self)
  node.rhs_operand.accept(self)
end
visit_member_access_by_pointer_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4556
def visit_member_access_by_pointer_expression(node)
  node.expression.accept(self)
end
visit_member_access_by_value_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4552
def visit_member_access_by_value_expression(node)
  node.expression.accept(self)
end
visit_member_declaration(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4752
def visit_member_declaration(node)
end
visit_multiplicative_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4622
def visit_multiplicative_expression(node)
  node.lhs_operand.accept(self)
  node.rhs_operand.accept(self)
end
visit_null_constant_specifier(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4535
def visit_null_constant_specifier(node)
end
visit_object_specifier(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4526
def visit_object_specifier(node)
end
visit_parameter_declaration(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4808
def visit_parameter_declaration(node)
  node.declaration_specifiers.accept(self)
  node.declarator.accept(self) if node.declarator
end
visit_parameter_definition(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4910
def visit_parameter_definition(node)
end
visit_parameter_type_list(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4804
def visit_parameter_type_list(node)
  node.parameters.each { |param| param.accept(self) }
end
visit_pointer_abstract_declarator(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4919
def visit_pointer_abstract_declarator(node)
  node.base.accept(self) if node.base
end
visit_postfix_decrement_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4572
def visit_postfix_decrement_expression(node)
  node.operand.accept(self)
end
visit_postfix_increment_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4568
def visit_postfix_increment_expression(node)
  node.operand.accept(self)
end
visit_prefix_decrement_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4585
def visit_prefix_decrement_expression(node)
  node.operand.accept(self)
end
visit_prefix_increment_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4581
def visit_prefix_increment_expression(node)
  node.operand.accept(self)
end
visit_relational_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4637
def visit_relational_expression(node)
  node.lhs_operand.accept(self)
  node.rhs_operand.accept(self)
end
visit_return_statement(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4886
def visit_return_statement(node)
  node.expression.accept(self) if node.expression
end
visit_shift_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4632
def visit_shift_expression(node)
  node.lhs_operand.accept(self)
  node.rhs_operand.accept(self)
end
visit_simple_assignment_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4678
def visit_simple_assignment_expression(node)
  node.lhs_operand.accept(self)
  node.rhs_operand.accept(self)
end
visit_sizeof_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4601
def visit_sizeof_expression(node)
  node.operand.accept(self)
end
visit_sizeof_type_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4605
def visit_sizeof_type_expression(node)
  node.operand.accept(self)
end
visit_specifier_qualifier_list(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4755
def visit_specifier_qualifier_list(node)
  node.type_specifiers.each { |type_spec| type_spec.accept(self) }
end
visit_standard_type_specifier(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4728
def visit_standard_type_specifier(node)
end
visit_string_literal_specifier(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4532
def visit_string_literal_specifier(node)
end
visit_struct_declaration(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4746
def visit_struct_declaration(node)
  node.specifier_qualifier_list.accept(self)
  node.struct_declarators.each { |dcr| dcr.accept(self) }
  node.items.each { |item| item.accept(self) }
end
visit_struct_declarator(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4759
def visit_struct_declarator(node)
  node.declarator.accept(self) if node.declarator
  node.expression.accept(self) if node.expression
end
visit_struct_specifier(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4734
def visit_struct_specifier(node)
  if node.struct_declarations
    node.struct_declarations.each { |dcl| dcl.accept(self) }
  end
end
visit_struct_type_declaration(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4710
def visit_struct_type_declaration(node)
end
visit_switch_statement(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4848
def visit_switch_statement(node)
  node.expression.accept(self)
  node.statement.accept(self)
end
visit_translation_unit(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4890
def visit_translation_unit(node)
  node.external_declarations.each { |dcl| dcl.accept(self) }
end
visit_type_name(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4913
def visit_type_name(node)
  node.specifier_qualifier_list.accept(self)
  node.abstract_declarator.accept(self) if node.abstract_declarator
  node.type_declaration.accept(self) if node.type_declaration
end
visit_typedef_declaration(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4707
def visit_typedef_declaration(node)
end
visit_typedef_type_specifier(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4731
def visit_typedef_type_specifier(node)
end
visit_typeof_type_specifier(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4774
def visit_typeof_type_specifier(node)
  node.expression.accept(self) if node.expression
  node.type_name.accept(self) if node.type_name
end
visit_unary_arithmetic_expression(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4597
def visit_unary_arithmetic_expression(node)
  node.operand.accept(self)
end
visit_union_specifier(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4740
def visit_union_specifier(node)
  if node.struct_declarations
    node.struct_declarations.each { |dcl| dcl.accept(self) }
  end
end
visit_union_type_declaration(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4713
def visit_union_type_declaration(node)
end
visit_variable_declaration(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4701
def visit_variable_declaration(node)
end
visit_variable_definition(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4704
def visit_variable_definition(node)
end
visit_while_statement(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4853
def visit_while_statement(node)
  node.expression.accept(self)
  node.statement.accept(self)
end