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