diff options
Diffstat (limited to 'tests/lexer.rs')
-rw-r--r-- | tests/lexer.rs | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/tests/lexer.rs b/tests/lexer.rs index a3c8916b1..6a9bab66b 100644 --- a/tests/lexer.rs +++ b/tests/lexer.rs | |||
@@ -31,6 +31,7 @@ fn lexer_test_cases() -> Vec<PathBuf> { | |||
31 | acc.push(path); | 31 | acc.push(path); |
32 | } | 32 | } |
33 | } | 33 | } |
34 | acc.sort(); | ||
34 | acc | 35 | acc |
35 | } | 36 | } |
36 | 37 | ||
@@ -38,7 +39,7 @@ fn lexer_test_case(path: &Path) { | |||
38 | let actual = { | 39 | let actual = { |
39 | let text = file::get_text(path).unwrap(); | 40 | let text = file::get_text(path).unwrap(); |
40 | let tokens = tokenize(&text); | 41 | let tokens = tokenize(&text); |
41 | dump_tokens(&tokens) | 42 | dump_tokens(&tokens, &text) |
42 | }; | 43 | }; |
43 | let expected = file::get_text(&path.with_extension("txt")).unwrap(); | 44 | let expected = file::get_text(&path.with_extension("txt")).unwrap(); |
44 | let expected = expected.as_str(); | 45 | let expected = expected.as_str(); |
@@ -64,10 +65,15 @@ fn tokenize(text: &str) -> Vec<Token> { | |||
64 | acc | 65 | acc |
65 | } | 66 | } |
66 | 67 | ||
67 | fn dump_tokens(tokens: &[Token]) -> String { | 68 | fn dump_tokens(tokens: &[Token], text: &str) -> String { |
68 | let mut acc = String::new(); | 69 | let mut acc = String::new(); |
70 | let mut offset = 0; | ||
69 | for token in tokens { | 71 | for token in tokens { |
70 | write!(acc, "{:?} {}\n", token.kind, token.len).unwrap() | 72 | let len: u32 = token.len.into(); |
73 | let len = len as usize; | ||
74 | let token_text = &text[offset..offset + len]; | ||
75 | offset += len; | ||
76 | write!(acc, "{:?} {} {:?}\n", token.kind, token.len, token_text).unwrap() | ||
71 | } | 77 | } |
72 | acc | 78 | acc |
73 | } \ No newline at end of file | 79 | } \ No newline at end of file |