summaryrefslogtreecommitdiffhomepage
path: root/lexer.c
diff options
context:
space:
mode:
Diffstat (limited to 'lexer.c')
-rw-r--r--lexer.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/lexer.c b/lexer.c
index b41e680..5fe7f6b 100644
--- a/lexer.c
+++ b/lexer.c
@@ -75,6 +75,10 @@ static const struct token tokens[] = {
{ TK_ELLIP, { .pat = "..." }, 3, NULL },
{ TK_QLBRACK, { .pat = "?.[" }, 3, NULL },
{ TK_QLPAREN, { .pat = "?.(" }, 3, NULL },
+ { TK_ASEXP, { .pat = "**=" }, 3, NULL },
+ { TK_ASAND, { .pat = "&&=" }, 3, NULL },
+ { TK_ASOR, { .pat = "||=" }, 3, NULL },
+ { TK_ASNULLISH, { .pat = "\?\?=" }, 3, NULL },
{ TK_AND, { .pat = "&&" }, 2, NULL },
{ TK_ASADD, { .pat = "+=" }, 2, NULL },
{ TK_ASBAND, { .pat = "&=" }, 2, NULL },
@@ -84,6 +88,7 @@ static const struct token tokens[] = {
{ TK_ASMOD, { .pat = "%=" }, 2, NULL },
{ TK_ASMUL, { .pat = "*=" }, 2, NULL },
{ TK_ASSUB, { .pat = "-=" }, 2, NULL },
+ { TK_EXP, { .pat = "**" }, 2, NULL },
{ TK_DEC, { .pat = "--" }, 2, NULL },
{ TK_INC, { .pat = "++" }, 2, NULL },
{ TK_EQ, { .pat = "==" }, 2, NULL },
@@ -100,6 +105,7 @@ static const struct token tokens[] = {
{ TK_LSTM, { .pat = "{%" }, 2, NULL },
{ TK_RSTM, { .pat = "%}" }, 2, NULL },
{ TK_ARROW, { .pat = "=>" }, 2, NULL },
+ { TK_NULLISH, { .pat = "??" }, 2, NULL },
{ TK_QDOT, { .pat = "?." }, 2, NULL },
{ TK_ADD, { .pat = "+" }, 1, NULL },
{ TK_ASSIGN, { .pat = "=" }, 1, NULL },