Merge pull request #917 from ahlinc/contrib/master
parser.c - added LOG_LOOKAHEAD macro to escape \n in logging
This commit is contained in:
commit
bf1854cb1b
1 changed files with 33 additions and 6 deletions
|
|
@ -25,6 +25,36 @@
|
|||
ts_parser__log(self); \
|
||||
}
|
||||
|
||||
#define LOG_LOOKAHEAD(symbol_name, size) \
|
||||
if (self->lexer.logger.log || self->dot_graph_file) { \
|
||||
char *buf = self->lexer.debug_buffer; \
|
||||
const char *symbol = symbol_name; \
|
||||
int off = sprintf(buf, "lexed_lookahead sym:"); \
|
||||
for ( \
|
||||
int i = 0; \
|
||||
symbol[i] != '\0' \
|
||||
&& off < TREE_SITTER_SERIALIZATION_BUFFER_SIZE; \
|
||||
i++ \
|
||||
) { \
|
||||
switch (symbol[i]) { \
|
||||
case '\t': buf[off++] = '\\'; buf[off++] = 't'; break; \
|
||||
case '\n': buf[off++] = '\\'; buf[off++] = 'n'; break; \
|
||||
case '\v': buf[off++] = '\\'; buf[off++] = 'v'; break; \
|
||||
case '\f': buf[off++] = '\\'; buf[off++] = 'f'; break; \
|
||||
case '\r': buf[off++] = '\\'; buf[off++] = 'r'; break; \
|
||||
case '\\': buf[off++] = '\\'; buf[off++] = '\\'; break; \
|
||||
default: buf[off++] = symbol[i]; break; \
|
||||
} \
|
||||
} \
|
||||
snprintf( \
|
||||
buf + off, \
|
||||
TREE_SITTER_SERIALIZATION_BUFFER_SIZE - off, \
|
||||
", size:%u", \
|
||||
size \
|
||||
); \
|
||||
ts_parser__log(self); \
|
||||
}
|
||||
|
||||
#define LOG_STACK() \
|
||||
if (self->dot_graph_file) { \
|
||||
ts_stack_print_dot_graph(self->stack, self->language, self->dot_graph_file); \
|
||||
|
|
@ -477,11 +507,9 @@ static Subtree ts_parser__lex(
|
|||
self->language
|
||||
);
|
||||
|
||||
LOG(
|
||||
"lexed_lookahead sym:%s, size:%u, character:'%c'",
|
||||
LOG_LOOKAHEAD(
|
||||
SYM_NAME(ts_subtree_symbol(result)),
|
||||
ts_subtree_total_size(result).bytes,
|
||||
first_error_character
|
||||
ts_subtree_total_size(result).bytes
|
||||
);
|
||||
} else {
|
||||
if (self->lexer.token_end_position.bytes < self->lexer.token_start_position.bytes) {
|
||||
|
|
@ -534,8 +562,7 @@ static Subtree ts_parser__lex(
|
|||
);
|
||||
}
|
||||
|
||||
LOG(
|
||||
"lexed_lookahead sym:%s, size:%u",
|
||||
LOG_LOOKAHEAD(
|
||||
SYM_NAME(ts_subtree_symbol(result)),
|
||||
ts_subtree_total_size(result).bytes
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue