class AdLint::Cc1::ScanfFormat::Conversion_c

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 2783
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 2779
def self.suitable_conversion_specifier_character
  "c"
end

Public Instance Methods

valid_assignment_suppressing_character?() click to toggle source
# File lib/adlint/cc1/format.rb, line 2789
def valid_assignment_suppressing_character?
  true
end
valid_conversion_specifier_character?() click to toggle source
# File lib/adlint/cc1/format.rb, line 2797
def valid_conversion_specifier_character?
  true
end
valid_field_width?() click to toggle source
# File lib/adlint/cc1/format.rb, line 2793
def valid_field_width?
  true
end
valid_scanset?() click to toggle source
# File lib/adlint/cc1/format.rb, line 2801
def valid_scanset?
  true
end

Private Instance Methods

argument_types() click to toggle source
# File lib/adlint/cc1/format.rb, line 2806
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.
  case length_modifier
  when "l"
    [pointer_type(wchar_t)]
  else
    [pointer_type(signed_char_t), pointer_type(unsigned_char_t)]
  end
end
suitable_length_modifiers() click to toggle source
# File lib/adlint/cc1/format.rb, line 2827
def suitable_length_modifiers
  ["l"]
end