aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeer <himbeer@disroot.org>2024-09-12 12:04:16 +0200
committerHimbeer <himbeer@disroot.org>2024-09-12 12:34:27 +0200
commit122f416c3f5d6f8081c548659d81e0938a055de1 (patch)
tree12c94da3989ad80585510bb84a0f7608dd9af46f
parent7860861841f9901f25d643ba3180191e07d1ab25 (diff)
Add boolean value keywords
-rw-r--r--doc/grammar.txt3
-rw-r--r--include/lex.h2
-rw-r--r--src/lex.c2
3 files changed, 6 insertions, 1 deletions
diff --git a/doc/grammar.txt b/doc/grammar.txt
index f14ee1b..299e1f8 100644
--- a/doc/grammar.txt
+++ b/doc/grammar.txt
@@ -77,7 +77,8 @@ unaryprefix := [ "-" | "!" | "~" ] unarypostfix
unarypostfix := primary [ "*" | "?" | "!" ]
primary := grouping | literal | call | IDENT
grouping := "(" expression ")"
-literal := string | number | arrayelems | sliceelems
+literal := bool | string | number | arrayelems | sliceelems
+bool := "true" | "false"
string := STRING*
number := ( INTEGER integer ) | ( FLOAT float )
arrayelems := array "{" ( expression ), "}"
diff --git a/include/lex.h b/include/lex.h
index 5538280..d2d6f71 100644
--- a/include/lex.h
+++ b/include/lex.h
@@ -16,6 +16,7 @@ enum lexical_token {
T_ENUM,
T_EXPORT,
T_EXTERN,
+ T_FALSE,
T_FOR,
T_FUNC,
T_IF,
@@ -25,6 +26,7 @@ enum lexical_token {
T_PUB,
T_RETURN,
T_STRUCT,
+ T_TRUE,
T_UNION,
T_LAST_KEYWORD,
diff --git a/src/lex.c b/src/lex.c
index 0c8ccf6..4d75968 100644
--- a/src/lex.c
+++ b/src/lex.c
@@ -18,6 +18,7 @@ const char *tokens[] = {
[T_ENUM] = "enum",
[T_EXPORT] = "export",
[T_EXTERN] = "extern",
+ [T_FALSE] = "false",
[T_FOR] = "for",
[T_FUNC] = "func",
[T_IF] = "if",
@@ -27,6 +28,7 @@ const char *tokens[] = {
[T_PUB] = "pub",
[T_RETURN] = "return",
[T_STRUCT] = "struct",
+ [T_TRUE] = "true",
[T_UNION] = "union",
[T_FLOAT32] = "float32",