module AdLint::Cpp::InlineAssemblyDefinition
Public Instance Methods
create_cxx_asm_definition(src)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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