aboutsummaryrefslogtreecommitdiffstats
path: root/src/grammar.pest
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2021-11-17 10:06:04 +0200
committerJan Tuomi <jans.tuomi@gmail.com>2021-11-17 10:06:04 +0200
commit08c930867859889045fda0b45029a37c789dff10 (patch)
tree7a9bbcd69b2acae8e3d36e44b7a8bd9f2bdf9856 /src/grammar.pest
parent15f5516b98d3b26eaa9aef758f8e2292b1f4a570 (diff)
Implement four function calc operators
Diffstat (limited to 'src/grammar.pest')
-rw-r--r--src/grammar.pest7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/grammar.pest b/src/grammar.pest
index e930511..333a58e 100644
--- a/src/grammar.pest
+++ b/src/grammar.pest
@@ -1,9 +1,10 @@
WHITESPACE = _{ " " | "\t" }
-COMMENT = _{ "/*" ~ (!"*/" ~ ANY)* ~ "*/" }
+COMMENT = _{ "/*" ~ (!"*/" ~ ANY)* ~ "*/" ~ NEWLINE* }
program = { SOI ~ statement+ ~ EOI }
statement = { (definition | expression) ~ NEWLINE* }
definition = { symbol+ ~ "=" ~ expression }
-expression = { leaf+ }
-leaf = { integer_literal | symbol }
+expression = { expression_node+ }
+expression_node = { integer_literal | operator | symbol | ("(" ~ expression ~ ")") }
+operator = { "+" | "-" | "/" | "*" }
integer_literal = @{ "-"? ~ ASCII_DIGIT+ }
symbol = @{ ASCII_ALPHA ~ (ASCII_ALPHANUMERIC | "-" | ".")* } \ No newline at end of file