Skip to content

Commit

Permalink
Merge pull request #242 from ydah/chore
Browse files Browse the repository at this point in the history
Change lexer regex to be simpler
yui-knk authored Nov 18, 2023
2 parents 3db482d + 9f7770e commit 36a130a
Showing 1 changed file with 7 additions and 9 deletions.
16 changes: 7 additions & 9 deletions lib/lrama/lexer.rb
Original file line number Diff line number Diff line change
@@ -96,8 +96,8 @@ def lex_token
return [:CHARACTER, Lrama::Lexer::Token::Char.new(s_value: @scanner.matched, location: location)]
when @scanner.scan(/'\\\\'|'\\b'|'\\t'|'\\f'|'\\r'|'\\n'|'\\v'|'\\13'/)
return [:CHARACTER, Lrama::Lexer::Token::Char.new(s_value: @scanner.matched, location: location)]
when @scanner.scan(/"/)
return [:STRING, %Q("#{@scanner.scan_until(/"/)})]
when @scanner.scan(/".*?"/)
return [:STRING, %Q(#{@scanner.matched})]
when @scanner.scan(/\d+/)
return [:INTEGER, Integer(@scanner.matched)]
when @scanner.scan(/([a-zA-Z_.][-a-zA-Z0-9_.]*)/)
@@ -135,13 +135,11 @@ def lex_c_code
when @scanner.scan(/\n/)
code += @scanner.matched
newline
when @scanner.scan(/"/)
matched = @scanner.scan_until(/"/)
code += %Q("#{matched})
@line += matched.count("\n")
when @scanner.scan(/'/)
matched = @scanner.scan_until(/'/)
code += %Q('#{matched})
when @scanner.scan(/".*?"/)
code += %Q(#{@scanner.matched})
@line += @scanner.matched.count("\n")
when @scanner.scan(/'.*?'/)
code += %Q(#{@scanner.matched})
else
if @scanner.scan(/[^\"'\{\}\n#{@end_symbol}]+/)
code += @scanner.matched

0 comments on commit 36a130a

Please sign in to comment.