| ... | @@ -91,6 +91,9 @@ | ... | @@ -91,6 +91,9 @@ |
| 91 | IDENT_START: \ | 91 | IDENT_START: \ |
| 92 | case DIGIT | 92 | case DIGIT |
| 93 | | 93 | |
| | 94 | #define LINE_ENDING \ |
| | 95 | '\r': \ |
| | 96 | case '\n' |
| 94 | | 97 | |
| 95 | static void begin_token(CTokenize *ctok, CTokId id) { | 98 | static void begin_token(CTokenize *ctok, CTokId id) { |
| 96 | assert(ctok->cur_tok == nullptr); | 99 | assert(ctok->cur_tok == nullptr); |
| ... | @@ -191,7 +194,7 @@ void tokenize_c_macro(CTokenize *ctok, const uint8_t *c) { | ... | @@ -191,7 +194,7 @@ void tokenize_c_macro(CTokenize *ctok, const uint8_t *c) { |
| 191 | case '\\': | 194 | case '\\': |
| 192 | ctok->state = CTokStateBackslash; | 195 | ctok->state = CTokStateBackslash; |
| 193 | break; | 196 | break; |
| 194 | case '\n': | 197 | case LINE_ENDING: |
| 195 | goto found_end_of_macro; | 198 | goto found_end_of_macro; |
| 196 | case IDENT_START: | 199 | case IDENT_START: |
| 197 | ctok->state = CTokStateIdentifier; | 200 | ctok->state = CTokStateIdentifier; |