version 1.167, 2021/11/28 14:29:03 |
version 1.168, 2022/02/12 15:50:14 |
Line 244 debug_print_buf(const char *name, const |
|
Line 244 debug_print_buf(const char *name, const |
|
} |
} |
} |
} |
|
|
|
static bool |
|
debug_full_parser_state(void) |
|
{ |
|
return true; |
|
} |
|
|
#define debug_ps_bool(name) \ |
#define debug_ps_bool(name) \ |
if (ps.name != prev_ps.name) \ |
if (ps.name != prev_ps.name) \ |
debug_println("[%c] ps." #name, ps.name ? 'x' : ' ') |
debug_println("[%c] -> [%c] ps." #name, \ |
|
prev_ps.name ? 'x' : ' ', ps.name ? 'x' : ' '); \ |
|
else if (debug_full_parser_state()) \ |
|
debug_println(" [%c] ps." #name, ps.name ? 'x' : ' ') |
#define debug_ps_int(name) \ |
#define debug_ps_int(name) \ |
if (ps.name != prev_ps.name) \ |
if (ps.name != prev_ps.name) \ |
debug_println("%3d ps." #name, ps.name) |
debug_println("%3d -> %3d ps." #name, prev_ps.name, ps.name); \ |
|
else if (debug_full_parser_state()) \ |
|
debug_println(" %3d ps." #name, ps.name) |
|
|
static void |
static void |
debug_lexi(lexer_symbol lsym) |
debug_lexi(lexer_symbol lsym) |
Line 268 debug_lexi(lexer_symbol lsym) |
|
Line 279 debug_lexi(lexer_symbol lsym) |
|
debug_print_buf("code", &code); |
debug_print_buf("code", &code); |
debug_print_buf("comment", &com); |
debug_print_buf("comment", &com); |
|
|
debug_println(" ps.prev_token = %s", lsym_name(ps.prev_token)); |
debug_println(" ps.prev_token = %s", lsym_name(ps.prev_token)); |
debug_ps_bool(next_col_1); |
debug_ps_bool(next_col_1); |
debug_ps_bool(curr_col_1); |
debug_ps_bool(curr_col_1); |
debug_ps_bool(next_unary); |
debug_ps_bool(next_unary); |
Line 277 debug_lexi(lexer_symbol lsym) |
|
Line 288 debug_lexi(lexer_symbol lsym) |
|
debug_ps_int(paren_level); |
debug_ps_int(paren_level); |
debug_ps_int(p_l_follow); |
debug_ps_int(p_l_follow); |
if (ps.paren_level != prev_ps.paren_level) { |
if (ps.paren_level != prev_ps.paren_level) { |
debug_printf(" ps.paren_indents:"); |
debug_printf(" ps.paren_indents:"); |
for (int i = 0; i < ps.paren_level; i++) |
for (int i = 0; i < ps.paren_level; i++) |
debug_printf(" %d", ps.paren_indents[i]); |
debug_printf(" %d", ps.paren_indents[i]); |
debug_println(""); |
debug_println(""); |
Line 497 lexi_alnum(void) |
|
Line 508 lexi_alnum(void) |
|
if (ch_isdigit(inp_peek()) || |
if (ch_isdigit(inp_peek()) || |
(inp_peek() == '.' && ch_isdigit(inp_lookahead(1)))) { |
(inp_peek() == '.' && ch_isdigit(inp_lookahead(1)))) { |
lex_number(); |
lex_number(); |
} else if (is_identifier_part(inp_peek())) { |
} else if (is_identifier_start(inp_peek())) { |
lex_word(); |
lex_word(); |
|
|
if (token.s[0] == 'L' && token.e - token.s == 1 && |
if (token.s[0] == 'L' && token.e - token.s == 1 && |