class AdLint::Cc1::StructDeclaration

Attributes

items[R]
specifier_qualifier_list[R]
struct_declarators[R]

Public Class Methods

new(spec_qual_list, struct_dcrs) click to toggle source
Calls superclass method AdLint::Cc1::SyntaxNode::new
# File lib/adlint/cc1/syntax.rb, line 2844
def initialize(spec_qual_list, struct_dcrs)
  super()
  @specifier_qualifier_list = spec_qual_list
  @struct_declarators = struct_dcrs
  @items = build_items(spec_qual_list, struct_dcrs)
end

Public Instance Methods

inspect(indent = 0) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 2863
def inspect(indent = 0)
  ([" " * indent + "#{short_class_name} (#{location.inspect})"] +
   @items.map { |item| item.inspect(indent + 1) }).join("\n")
end
location() click to toggle source
# File lib/adlint/cc1/syntax.rb, line 2855
def location
  @specifier_qualifier_list.location
end
to_s() click to toggle source
# File lib/adlint/cc1/syntax.rb, line 2859
def to_s
  @items.map { |item| item.to_s + ";" }.join(" ")
end

Private Instance Methods

build_items(spec_qual_list, struct_dcrs) click to toggle source
# File lib/adlint/cc1/syntax.rb, line 2869
def build_items(spec_qual_list, struct_dcrs)
  # FIXME: Must support unnamed bit padding.

  if struct_dcrs.empty?
    [MemberDeclaration.new(spec_qual_list, nil)]
  else
    struct_dcrs.map do |struct_dcr|
      MemberDeclaration.new(spec_qual_list, struct_dcr)
    end
  end
end