]> git.kaiwu.me - njs.git/commitdiff
Introduced "undefined" as a token in lexer.
authorDmitry Volyntsev <xeioex@nginx.com>
Fri, 16 Apr 2021 15:25:22 +0000 (15:25 +0000)
committerDmitry Volyntsev <xeioex@nginx.com>
Fri, 16 Apr 2021 15:25:22 +0000 (15:25 +0000)
src/njs_lexer.h
src/njs_lexer_tables.h
utils/lexer_keyword.py

index 9afc83cca6bf764dd2e9c39239ed5aecd3386294..fddc30a58a97ac20800dbc0add6a770377bd68dc 100644 (file)
@@ -116,6 +116,7 @@ typedef enum {
     NJS_TOKEN_NULL,
     NJS_TOKEN_NUMBER,
     NJS_TOKEN_TRUE,
+    NJS_TOKEN_UNDEFINED,
     NJS_TOKEN_FALSE,
     NJS_TOKEN_STRING,
 
index 73f71678680883607b27b6ab4bae86d2f7330b2d..c9ad680d047f040b37addd853b8844d1bdca21a8 100644 (file)
@@ -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 },
index 78b3ddc788122a3e458104406849d383874387a1..8ba967deeeda0d551df67ae0cd3346f182a8e737 100755 (executable)
@@ -6,6 +6,7 @@ global_keywords = {
     "null": 1,
     "false": 1,
     "true": 1,
+    "undefined": 0,
 
     # Operators.