# File lib/ruby-vpi/verilog_parser.rb, line 108 108: def verilog_to_ruby 109: content = self.dup 110: 111: # single-line comments 112: content.gsub! %r{//(.*)$}, '#\1' 113: 114: # multi-line comments 115: content.gsub! %r{/\*.*?\*/}m, "\n=begin\n\\0\n=end\n" 116: 117: # preprocessor directives 118: content.gsub! %r{`include}, '#\0' 119: 120: content.gsub! %r{`define\s+(\w+)\s+(.+)} do 121: "#{$1.to_ruby_const_name} = #{$2}" 122: end 123: 124: content.gsub! %r{`+}, '' 125: 126: # numbers 127: content.gsub! %r{\d*\'([dohb]\w+)}, '0\1' 128: 129: # ranges 130: content.gsub! %r{(\S)\s*:\s*(\S)}, '\1..\2' 131: 132: content 133: end