From 6448053efaee7327a9da9c1bc1656b3a23e2e85f Mon Sep 17 00:00:00 2001 From: Andrew Hlynskyi Date: Mon, 8 Feb 2021 08:10:57 +0200 Subject: [PATCH] parser.c - added backslash escaping in LOG_LOOKAHEAD to make it clear in case of \n --- lib/src/parser.c | 55 ++++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/lib/src/parser.c b/lib/src/parser.c index fa15477a..e9d87ac9 100644 --- a/lib/src/parser.c +++ b/lib/src/parser.c @@ -25,33 +25,34 @@ 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; \ - default: buf[off++] = symbol[i]; break; \ - } \ - } \ - snprintf( \ - buf + off, \ - TREE_SITTER_SERIALIZATION_BUFFER_SIZE - off, \ - ", size:%u", \ - size \ - ); \ - 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() \