class AdLint::Cc1::TypeDeclarationBuilder

Attributes

type_declarations[R]

Public Class Methods

new(sym_tbl) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4474
def initialize(sym_tbl)
  @symbol_table = sym_tbl
  @type_declarations = []
end

Public Instance Methods

visit_enum_specifier(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4503
def visit_enum_specifier(node)
  if node.enumerators
    sym = @symbol_table.create_new_symbol(EnumTag, node.identifier)
    @type_declarations.push(EnumTypeDeclaration.new(node, sym))
  end
end
visit_specifier_qualifier_list(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4517
def visit_specifier_qualifier_list(node)
  node.type_specifiers.each { |child| child.accept(self) }
end
visit_standard_type_specifier(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4481
def visit_standard_type_specifier(node)
end
visit_struct_declaration(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4513
def visit_struct_declaration(node)
  node.specifier_qualifier_list.accept(self)
end
visit_struct_specifier(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4487
def visit_struct_specifier(node)
  if node.struct_declarations
    node.struct_declarations.each { |child| child.accept(self) }
    sym = @symbol_table.create_new_symbol(StructTag, node.identifier)
    @type_declarations.push(StructTypeDeclaration.new(node, sym))
  end
end
visit_typedef_type_specifier(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4484
def visit_typedef_type_specifier(node)
end
visit_typeof_type_specifier(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4510
def visit_typeof_type_specifier(node)
end
visit_union_specifier(node) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4495
def visit_union_specifier(node)
  if node.struct_declarations
    node.struct_declarations.each { |child| child.accept(self) }
    sym = @symbol_table.create_new_symbol(UnionTag, node.identifier)
    @type_declarations.push(UnionTypeDeclaration.new(node, sym))
  end
end