class AdLint::Cc1::PrintfFormat

Constants

CONVERSION_SPECIFIERS
CONVERSION_SPECIFIER_TBL

Attributes

directives[R]
extra_arguments[R]
location[R]

Public Class Methods

new(fmt_str, loc, trailing_args, env) click to toggle source
# File lib/adlint/cc1/format.rb, line 38
def initialize(fmt_str, loc, trailing_args, env)
  @location = loc
  @directives = create_directives(fmt_str, trailing_args, env)
  @extra_arguments = trailing_args
end

Public Instance Methods

conversion_specifiers() click to toggle source
# File lib/adlint/cc1/format.rb, line 48
def conversion_specifiers
  @directives.select { |dire| dire.conversion_specifier? }
end
max_length() click to toggle source
# File lib/adlint/cc1/format.rb, line 56
def max_length
  @directives.reduce(0) { |len, dire| len + dire.max_length }
end
min_length() click to toggle source
# File lib/adlint/cc1/format.rb, line 52
def min_length
  @directives.reduce(0) { |len, dire| len + dire.min_length }
end

Private Instance Methods

create_directives(fmt_str, trailing_args, env) click to toggle source
# File lib/adlint/cc1/format.rb, line 61
def create_directives(fmt_str, trailing_args, env)
  dires = []
  str = fmt_str.dup
  until str.empty?
    dires.push(Directive.guess(str, trailing_args, env))
  end
  dires
end