|
1 | | -#include "include/lexer.h" |
2 | 1 | #include "include/buffer.h" |
3 | | -#include "include/macros.h" |
| 2 | +#include "include/lexer_peek_helpers.h" |
4 | 3 | #include "include/token.h" |
5 | 4 | #include "include/util.h" |
6 | 5 |
|
@@ -39,32 +38,6 @@ token_T* lexer_error(lexer_T* lexer, const char* message) { |
39 | 38 | return token_init(error_message, TOKEN_ERROR, lexer); |
40 | 39 | } |
41 | 40 |
|
42 | | -char lexer_peek(lexer_T* lexer, int offset) { |
43 | | - return lexer->source[MIN(lexer->current_position + offset, lexer->source_length)]; |
44 | | -} |
45 | | - |
46 | | -bool lexer_peek_for_doctype(lexer_T* lexer, int offset) { |
47 | | - return (lexer_peek(lexer, offset) == '<' && lexer_peek(lexer, offset + 1) == '!' && |
48 | | - tolower(lexer_peek(lexer, offset + 2)) == 'd' && tolower(lexer_peek(lexer, offset + 3)) == 'o' && |
49 | | - tolower(lexer_peek(lexer, offset + 4)) == 'c' && tolower(lexer_peek(lexer, offset + 5)) == 't' && |
50 | | - tolower(lexer_peek(lexer, offset + 6)) == 'y' && tolower(lexer_peek(lexer, offset + 7)) == 'p' && |
51 | | - tolower(lexer_peek(lexer, offset + 8)) == 'e'); |
52 | | -} |
53 | | - |
54 | | -bool lexer_peek_for_html_comment_start(lexer_T* lexer, int offset) { |
55 | | - return (lexer_peek(lexer, offset) == '<' && lexer_peek(lexer, offset + 1) == '!' && |
56 | | - lexer_peek(lexer, offset + 2) == '-' && lexer_peek(lexer, offset + 3) == '-'); |
57 | | -} |
58 | | - |
59 | | -bool lexer_peek_for_html_comment_end(lexer_T* lexer, int offset) { |
60 | | - return ( |
61 | | - lexer_peek(lexer, offset) == '-' && lexer_peek(lexer, offset + 1) == '-' && lexer_peek(lexer, offset + 2) == '>'); |
62 | | -} |
63 | | - |
64 | | -char lexer_backtrack(lexer_T* lexer, int offset) { |
65 | | - return lexer->source[MAX(lexer->current_position - offset, 0)]; |
66 | | -} |
67 | | - |
68 | 41 | void lexer_advance(lexer_T* lexer) { |
69 | 42 | if (lexer->current_position < lexer->source_length && lexer->current_character != '\0') { |
70 | 43 |
|
@@ -175,25 +148,6 @@ token_T* lexer_parse_erb_open(lexer_T* lexer) { |
175 | 148 | return token_init("<%", TOKEN_ERB_START, lexer); |
176 | 149 | } |
177 | 150 |
|
178 | | -bool lexer_peek_erb_close_tag(lexer_T* lexer, int offset) { |
179 | | - return (lexer_peek(lexer, offset + 0) == '%' && lexer_peek(lexer, offset + 1) == '>'); |
180 | | -} |
181 | | - |
182 | | -bool lexer_peek_erb_dash_close_tag(lexer_T* lexer, int offset) { |
183 | | - return (lexer_peek(lexer, offset + 0) == '-' && lexer_peek(lexer, offset + 1) == '%' && |
184 | | - lexer_peek(lexer, offset + 2) == '>'); |
185 | | -} |
186 | | - |
187 | | -bool lexer_peek_erb_percent_close_tag(lexer_T* lexer, int offset) { |
188 | | - return (lexer_peek(lexer, offset + 0) == '%' && lexer_peek(lexer, offset + 1) == '%' && |
189 | | - lexer_peek(lexer, offset + 2) == '>'); |
190 | | -} |
191 | | - |
192 | | -bool lexer_peek_erb_end(lexer_T* lexer, int offset) { |
193 | | - return (lexer_peek_erb_close_tag(lexer, offset) || lexer_peek_erb_dash_close_tag(lexer, offset) || |
194 | | - lexer_peek_erb_percent_close_tag(lexer, offset)); |
195 | | -} |
196 | | - |
197 | 151 | token_T* lexer_parse_erb_content(lexer_T* lexer) { |
198 | 152 | buffer_T buffer = buffer_new(); |
199 | 153 |
|
|
0 commit comments