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