Class: Babelyoda::StringsLexer

Inherits:
Object
  • Object
show all
Defined in:
lib/babelyoda/strings_lexer.rb

Constant Summary collapse

TOKENS =
[ :multiline_comment, :singleline_comment, :string, :reserved0, :equal_sign, :semicolon ].freeze

Instance Method Summary collapse

Instance Method Details

#lex(str) ⇒ Object



5
6
7
8
9
10
# File 'lib/babelyoda/strings_lexer.rb', line 5

def lex(str)
  str.scan(/(\/\*.*\*\/)|(\s*\/\/.*\n)|((["])(?:\\?+.)*?\4)|(\s*=\s*)|(;)/).each do |m|
    idx = m.index { |x| x }
    yield TOKENS[idx], m[idx].strip
  end
end