From 0e595346bef5a670ac53829bf10bacb4333b5d08 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Fri, 9 Dec 2016 13:33:37 -0800 Subject: [PATCH] Make lexer log output easier to read --- spec/runtime/document_spec.cc | 12 +++--------- src/runtime/lexer.c | 13 ++++--------- 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/spec/runtime/document_spec.cc b/spec/runtime/document_spec.cc index 0fb7a640..a50fee1b 100644 --- a/spec/runtime/document_spec.cc +++ b/spec/runtime/document_spec.cc @@ -178,20 +178,14 @@ describe("Document", [&]() { delete logger; }); - it("calls the debugger with a message for each lex action", [&]() { - ts_document_set_logger(doc, logger->logger()); - ts_document_parse(doc); - - AssertThat(logger->messages, Contains("lookahead char:'1'")); - AssertThat(logger->messages, Contains("lookahead char:'['")); - }); - it("calls the debugger with a message for each parse action", [&]() { ts_document_set_logger(doc, logger->logger()); ts_document_parse(doc); AssertThat(logger->messages, Contains("new_parse")); - AssertThat(logger->messages, Contains("lookahead char:'['")); + AssertThat(logger->messages, Contains("skip character:' '")); + AssertThat(logger->messages, Contains("consume character:'['")); + AssertThat(logger->messages, Contains("consume character:'1'")); AssertThat(logger->messages, Contains("reduce sym:array, child_count:4")); AssertThat(logger->messages, Contains("accept")); }); diff --git a/src/runtime/lexer.c b/src/runtime/lexer.c index b39eb599..acf394bb 100644 --- a/src/runtime/lexer.c +++ b/src/runtime/lexer.c @@ -11,11 +11,8 @@ self->logger.log(self->logger.payload, TSLogTypeLex, self->debug_buffer); \ } -#define LOG_LOOKAHEAD() \ - LOG((0 < self->data.lookahead && self->data.lookahead < 256) \ - ? "lookahead char:'%c'" \ - : "lookahead char:%d", \ - self->data.lookahead); +#define LOG_CHARACTER(message, character) \ + LOG(character < 255 ? message " character:'%c'" : message " character:%d", character) static const char empty_chunk[2] = { 0, 0 }; @@ -42,8 +39,6 @@ static void ts_lexer__get_lookahead(Lexer *self) { utf8proc_iterate(chunk, size, &self->data.lookahead); else self->lookahead_size = utf16_iterate(chunk, size, &self->data.lookahead); - - LOG_LOOKAHEAD(); } static void ts_lexer__advance(void *payload, bool skip) { @@ -63,10 +58,10 @@ static void ts_lexer__advance(void *payload, bool skip) { } if (skip) { - LOG("skip_separator"); + LOG_CHARACTER("skip", self->data.lookahead); self->token_start_position = self->current_position; } else { - LOG("advance"); + LOG_CHARACTER("consume", self->data.lookahead); } if (self->current_position.bytes >= self->chunk_start + self->chunk_size)