Module: AdLint::Cpp::InlineAssemblyDefinition
- Included in:
- PreprocessedSource
- Defined in:
- lib/adlint/cpp/asm.rb
Instance Method Summary collapse
- #create_cxx_asm_definition(src) ⇒ Object
- #create_extended_asm_definitions(src) ⇒ Object
- #create_inline_assembly_substitutions(src) ⇒ Object
Instance Method Details
#create_cxx_asm_definition(src) ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/adlint/cpp/asm.rb', line 42 def create_cxx_asm_definition(src) CodeSubstitution.new("asm(__adlint__any);", "").tap do |sub| sub.on_substitution += lambda { |matched_toks| src.on_inline_assembly.invoke(matched_toks) } end end |
#create_extended_asm_definitions(src) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/adlint/cpp/asm.rb', line 50 def create_extended_asm_definitions(src) [ "__asm(__adlint__any);", "asm { __adlint__any }", "__asm { __adlint__any }", "__asm__(__adlint__any);", "__asm__ volatile (__adlint__any);", "__asm__ __volatile__ (__adlint__any);", "asm(__adlint__any);", "asm volatile (__adlint__any);", "asm __volatile__ (__adlint__any);" ].map do |ptn| CodeSubstitution.new(ptn, "").tap { |sub| sub.on_substitution += lambda { |matched_toks| src.on_inline_assembly.invoke(matched_toks) } } end end |
#create_inline_assembly_substitutions(src) ⇒ Object
38 39 40 |
# File 'lib/adlint/cpp/asm.rb', line 38 def create_inline_assembly_substitutions(src) [create_cxx_asm_definition(src)] + create_extended_asm_definitions(src) end |