class AdLint::Cc1::TypeName

Attributes

abstract_declarator[R]
specifier_qualifier_list[R]
type[RW]
type_declaration[R]

Public Class Methods

new(spec_qual_list, abstract_dcr, sym_tbl) click to toggle source
Calls superclass method AdLint::Cc1::SyntaxNode::new
# File lib/adlint/cc1/syntax.rb, line 4234
def initialize(spec_qual_list, abstract_dcr, sym_tbl)
  super()
  @specifier_qualifier_list = spec_qual_list
  @abstract_declarator = abstract_dcr
  @type = nil
  @type_declaration = build_type_declaration(spec_qual_list, sym_tbl)
end

Public Instance Methods

inspect(indent = 0) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4255
def inspect(indent = 0)
  " " * indent + short_class_name + " (#{@type ? @type.image : "nil"})"
end
location() click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4247
def location
  @specifier_qualifier_list.location
end
to_s() click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4251
def to_s
  @type.image
end

Private Instance Methods

build_type_declaration(spec_qual_list, sym_tbl) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 4260
def build_type_declaration(spec_qual_list, sym_tbl)
  spec_qual_list.type_specifiers.each do |type_spec|
    builder = TypeDeclarationBuilder.new(sym_tbl)
    type_spec.accept(builder)
    unless builder.type_declarations.empty?
      return builder.type_declarations.first
    end
  end
  nil
end