From 28271d509151d046cb3213dab16c49c0a2751e5a Mon Sep 17 00:00:00 2001 From: Dmitry Volyntsev Date: Fri, 16 Apr 2021 15:25:22 +0000 Subject: [PATCH] Introduced "undefined" as a token in lexer. --- src/njs_lexer.h | 1 + src/njs_lexer_tables.h | 20 +++++++++++++------- utils/lexer_keyword.py | 1 + 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/njs_lexer.h b/src/njs_lexer.h index 9afc83cc..fddc30a5 100644 --- a/src/njs_lexer.h +++ b/src/njs_lexer.h @@ -116,6 +116,7 @@ typedef enum { NJS_TOKEN_NULL, NJS_TOKEN_NUMBER, NJS_TOKEN_TRUE, + NJS_TOKEN_UNDEFINED, NJS_TOKEN_FALSE, NJS_TOKEN_STRING, diff --git a/src/njs_lexer_tables.h b/src/njs_lexer_tables.h index 73f71678..c9ad680d 100644 --- a/src/njs_lexer_tables.h +++ b/src/njs_lexer_tables.h @@ -10,7 +10,7 @@ #define _NJS_LEXER_TABLES_H_INCLUDED_ -static const njs_keyword_t njs_lexer_kws[53] = +static const njs_keyword_t njs_lexer_kws[54] = { { .entry = { njs_str("arguments") }, @@ -300,6 +300,12 @@ static const njs_keyword_t njs_lexer_kws[53] = .reserved = 1 }, + { + .entry = { njs_str("undefined") }, + .type = NJS_TOKEN_UNDEFINED, + .reserved = 0 + }, + { .entry = { njs_str("var") }, .type = NJS_TOKEN_VAR, @@ -364,10 +370,10 @@ static const njs_lexer_keyword_entry_t njs_lexer_keyword_entries[99] = { "null", &njs_lexer_kws[32], 4, 0 }, { NULL, NULL, 0, 0 }, { "do", &njs_lexer_kws[12], 2, 0 }, - { "var", &njs_lexer_kws[48], 3, 0 }, + { "var", &njs_lexer_kws[49], 3, 0 }, { "if", &njs_lexer_kws[23], 2, 7 }, { "implements", &njs_lexer_kws[24], 10, 0 }, - { "with", &njs_lexer_kws[51], 4, 0 }, + { "with", &njs_lexer_kws[52], 4, 0 }, { NULL, NULL, 0, 0 }, { "eval", &njs_lexer_kws[15], 4, 9 }, { NULL, NULL, 0, 0 }, @@ -379,14 +385,14 @@ static const njs_lexer_keyword_entry_t njs_lexer_keyword_entries[99] = { NULL, NULL, 0, 0 }, { NULL, NULL, 0, 0 }, { "default", &njs_lexer_kws[10], 7, 0 }, - { "void", &njs_lexer_kws[49], 4, 0 }, - { NULL, NULL, 0, 0 }, + { "void", &njs_lexer_kws[50], 4, 0 }, { NULL, NULL, 0, 0 }, { NULL, NULL, 0, 0 }, + { "undefined", &njs_lexer_kws[48], 9, 0 }, { "from", &njs_lexer_kws[21], 4, 0 }, { "package", &njs_lexer_kws[34], 7, 15 }, { NULL, NULL, 0, 0 }, - { "yield", &njs_lexer_kws[52], 5, 0 }, + { "yield", &njs_lexer_kws[53], 5, 0 }, { NULL, NULL, 0, 0 }, { NULL, NULL, 0, 0 }, { "of", &njs_lexer_kws[33], 2, 0 }, @@ -403,7 +409,7 @@ static const njs_lexer_keyword_entry_t njs_lexer_keyword_entries[99] = { NULL, NULL, 0, 0 }, { NULL, NULL, 0, 0 }, { "for", &njs_lexer_kws[20], 3, 0 }, - { "while", &njs_lexer_kws[50], 5, 0 }, + { "while", &njs_lexer_kws[51], 5, 0 }, { NULL, NULL, 0, 0 }, { NULL, NULL, 0, 0 }, { NULL, NULL, 0, 0 }, diff --git a/utils/lexer_keyword.py b/utils/lexer_keyword.py index 78b3ddc7..8ba967de 100755 --- a/utils/lexer_keyword.py +++ b/utils/lexer_keyword.py @@ -6,6 +6,7 @@ global_keywords = { "null": 1, "false": 1, "true": 1, + "undefined": 0, # Operators. -- 2.47.3