class AdLint::Cc1::ScanfFormat::Conversion_a

Public Class Methods

new(fmt, trailing_args, env, as_char, field_width, len_mod, cs_char, scanset) click to toggle source
# File lib/adlint/cc1/format.rb, line 2674
def initialize(fmt, trailing_args, env, as_char, field_width, len_mod,
               cs_char, scanset)
  super(fmt, trailing_args, env, true, as_char, field_width, len_mod,
        cs_char, scanset)
end
suitable_conversion_specifier_character() click to toggle source
# File lib/adlint/cc1/format.rb, line 2670
def self.suitable_conversion_specifier_character
  "a"
end

Public Instance Methods

valid_assignment_suppressing_character?() click to toggle source
# File lib/adlint/cc1/format.rb, line 2680
def valid_assignment_suppressing_character?
  true
end
valid_conversion_specifier_character?() click to toggle source
# File lib/adlint/cc1/format.rb, line 2688
def valid_conversion_specifier_character?
  true
end
valid_field_width?() click to toggle source
# File lib/adlint/cc1/format.rb, line 2684
def valid_field_width?
  true
end
valid_scanset?() click to toggle source
# File lib/adlint/cc1/format.rb, line 2692
def valid_scanset?
  true
end

Private Instance Methods

argument_types() click to toggle source
# File lib/adlint/cc1/format.rb, line 2697
def argument_types
  # NOTE: The ISO C99 standard says;
  #
  # 7.19.6.2 The fscanf function
  #
  # 11 The length modifiers and their meanings are:
  #
  #    l  Specifies that a following d, i, o, u, x, X, or n conversion
  #       specifier applies to an argument with type pointer to long int
  #       or unsigned long int; that a following a, A, e, E, f, F, g, or
  #       G conversion specifier applies to an argument with type pointer
  #       to double; or that a following c, s, or [ conversion specifier
  #       applies to an argument with type pointer to wchar_t.
  #    L  Specifies that a following a, A, e, E, f, F, g, or G conversion
  #       specifier applies to an argument with type pointer to long
  #       double.
  case length_modifier
  when "l"
    [pointer_type(double_t)]
  when "L"
    [pointer_type(long_double_t)]
  else
    [pointer_type(float_t)]
  end
end
suitable_length_modifiers() click to toggle source
# File lib/adlint/cc1/format.rb, line 2723
def suitable_length_modifiers
  ["l", "L"]
end