mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Changed tokenizer number literals to be more encompassing
Number literals now skips hexadecimal, and C style literals.
This commit is contained in:
@@ -94,7 +94,7 @@ module Linguist
|
||||
end
|
||||
|
||||
# Skip number literals
|
||||
elsif s.scan(/(0x)?\d(\d|\.)*/)
|
||||
elsif s.scan(/(0x\h(\h|\.)*|\d(\d|\.)*)([uU][lL]{0,2}|([eE][-+]\d*)?[fFlL]*)/)
|
||||
|
||||
# SGML style brackets
|
||||
elsif token = s.scan(/<[^\s<>][^<>]*>/)
|
||||
|
||||
@@ -25,6 +25,10 @@ class TestTokenizer < Minitest::Test
|
||||
assert_equal %w(add \( \)), tokenize('add(123, 456)')
|
||||
assert_equal %w(|), tokenize('0x01 | 0x10')
|
||||
assert_equal %w(*), tokenize('500.42 * 1.0')
|
||||
assert_equal %w(), tokenize('1.23e-04')
|
||||
assert_equal %w(), tokenize('1.0f')
|
||||
assert_equal %w(), tokenize('1234ULL')
|
||||
assert_equal %w(G1 X55 Y5 F2000), tokenize('G1 X55 Y5 F2000')
|
||||
end
|
||||
|
||||
def test_skip_comments
|
||||
|
||||
Reference in New Issue
Block a user