class AdLint::MetricRecord

Public Class Methods

new(csv_row, sma_wd) click to toggle source
Calls superclass method
# File lib/adlint/metric.rb, line 201
def initialize(csv_row, sma_wd)
  super(csv_row)
  @sma_wd = sma_wd
end
of(csv_row, sma_wd) click to toggle source
# File lib/adlint/metric.rb, line 172
def self.of(csv_row, sma_wd)
  case csv_row[0]
  when "VER"
    create_version_record(csv_row)
  when "DCL"
    create_declaration_record(csv_row, sma_wd)
  when "DEF"
    create_definition_record(csv_row, sma_wd)
  when "INI"
    create_initialization_record(csv_row, sma_wd)
  when "ASN"
    create_assignment_record(csv_row, sma_wd)
  when "DEP"
    create_dependency_record(csv_row, sma_wd)
  when "LIT"
    create_literal_record(csv_row, sma_wd)
  when "PRE"
    create_pp_directive_record(csv_row, sma_wd)
  when "MET"
    create_metric_record(csv_row, sma_wd)
  else
    # NOTE: Silently ignore unknown records so that an optional examination
    #       package may output its own special ones.
    #
    #raise "invalid metric record."
    nil
  end
end

Private Class Methods

create_assignment_record(csv_row, sma_wd) click to toggle source
# File lib/adlint/metric.rb, line 317
def self.create_assignment_record(csv_row, sma_wd)
  AssignmentRecord.new(csv_row, sma_wd)
end
create_declaration_record(csv_row, sma_wd) click to toggle source
# File lib/adlint/metric.rb, line 271
def self.create_declaration_record(csv_row, sma_wd)
  case csv_row[4]
  when "T"
    case csv_row[5]
    when "T"
      TypedefDeclarationRecord.new(csv_row, sma_wd)
    when "S"
      StructDeclarationRecord.new(csv_row, sma_wd)
    when "U"
      UnionDeclarationRecord.new(csv_row, sma_wd)
    when "E"
      EnumDeclarationRecord.new(csv_row, sma_wd)
    else
      raise "invalid DCL record."
    end
  when "V"
    GlobalVariableDeclarationRecord.new(csv_row, sma_wd)
  when "F"
    FunctionDeclarationRecord.new(csv_row, sma_wd)
  else
    raise "invalid DCL record."
  end
end
create_definition_record(csv_row, sma_wd) click to toggle source
# File lib/adlint/metric.rb, line 296
def self.create_definition_record(csv_row, sma_wd)
  case csv_row[4]
  when "V"
    VariableDefinitionRecord.new(csv_row, sma_wd)
  when "F"
    FunctionDefinitionRecord.new(csv_row, sma_wd)
  when "M"
    MacroDefinitionRecord.new(csv_row, sma_wd)
  when "L"
    LabelDefinitionRecord.new(csv_row, sma_wd)
  else
    raise "invalid DEF record."
  end
end
create_dependency_record(csv_row, sma_wd) click to toggle source
# File lib/adlint/metric.rb, line 322
def self.create_dependency_record(csv_row, sma_wd)
  case csv_row[4]
  when "I"
    IncludeRecord.new(csv_row, sma_wd)
  when "C"
    FunctionCallRecord.new(csv_row, sma_wd)
  when "X"
    case csv_row[5]
    when "V"
      VariableXRefRecord.new(csv_row, sma_wd)
    when "F"
      FunctionXRefRecord.new(csv_row, sma_wd)
    else
      raise "invalid DEP record."
    end
  else
    raise "invalid DEP record."
  end
end
create_initialization_record(csv_row, sma_wd) click to toggle source
# File lib/adlint/metric.rb, line 312
def self.create_initialization_record(csv_row, sma_wd)
  InitializationRecord.new(csv_row, sma_wd)
end
create_literal_record(csv_row, sma_wd) click to toggle source
# File lib/adlint/metric.rb, line 343
def self.create_literal_record(csv_row, sma_wd)
  LiteralRecord.new(csv_row, sma_wd)
end
create_metric_record(csv_row, sma_wd) click to toggle source
# File lib/adlint/metric.rb, line 353
def self.create_metric_record(csv_row, sma_wd)
  new(csv_row, sma_wd)
end
create_pp_directive_record(csv_row, sma_wd) click to toggle source
# File lib/adlint/metric.rb, line 348
def self.create_pp_directive_record(csv_row, sma_wd)
  PPDirectiveRecord.new(csv_row, sma_wd)
end
create_version_record(csv_row) click to toggle source
# File lib/adlint/metric.rb, line 266
def self.create_version_record(csv_row)
  VersionRecord.new(csv_row)
end

Public Instance Methods

assignment?() click to toggle source
# File lib/adlint/metric.rb, line 252
def assignment?; false end
column_no() click to toggle source
# File lib/adlint/metric.rb, line 219
def column_no
  field_at(3).to_i
end
enum_declaration?() click to toggle source
# File lib/adlint/metric.rb, line 236
def enum_declaration?; false end
fpath() click to toggle source
# File lib/adlint/metric.rb, line 210
def fpath
  sma_abs_fpath = Pathname.new(field_at(1)).expand_path(@sma_wd)
  sma_abs_fpath.relative_path_from(Pathname.pwd)
end
function_call?() click to toggle source
# File lib/adlint/metric.rb, line 256
def function_call?; false end
function_declaration?() click to toggle source
# File lib/adlint/metric.rb, line 240
def function_declaration?; false end
function_definition?() click to toggle source
# File lib/adlint/metric.rb, line 244
def function_definition?; false end
function_xref?() click to toggle source
# File lib/adlint/metric.rb, line 260
def function_xref?; false end
global_variable_declaration?() click to toggle source
# File lib/adlint/metric.rb, line 238
def global_variable_declaration?; false end
include?() click to toggle source
# File lib/adlint/metric.rb, line 254
def include?; false end
initialization?() click to toggle source
# File lib/adlint/metric.rb, line 250
def initialization?; false end
label_definition?() click to toggle source
# File lib/adlint/metric.rb, line 248
def label_definition?; false end
line_no() click to toggle source
# File lib/adlint/metric.rb, line 215
def line_no
  field_at(2).to_i
end
literal?() click to toggle source
# File lib/adlint/metric.rb, line 262
def literal?; false end
location() click to toggle source
# File lib/adlint/metric.rb, line 223
def location
  Location.new(fpath, line_no, column_no)
end
macro_definition?() click to toggle source
# File lib/adlint/metric.rb, line 246
def macro_definition?; false end
pp_directive?() click to toggle source
# File lib/adlint/metric.rb, line 264
def pp_directive?; false end
struct_declaration?() click to toggle source
# File lib/adlint/metric.rb, line 232
def struct_declaration?; false end
type() click to toggle source
# File lib/adlint/metric.rb, line 206
def type
  field_at(0)
end
typedef_declaration?() click to toggle source
# File lib/adlint/metric.rb, line 230
def typedef_declaration?; false end
union_declaration?() click to toggle source
# File lib/adlint/metric.rb, line 234
def union_declaration?; false end
variable_definition?() click to toggle source
# File lib/adlint/metric.rb, line 242
def variable_definition?; false end
variable_xref?() click to toggle source
# File lib/adlint/metric.rb, line 258
def variable_xref?; false end
version?() click to toggle source
# File lib/adlint/metric.rb, line 228
def version?; false end