diff options
Diffstat (limited to 'src/grammar.pest')
| -rw-r--r-- | src/grammar.pest | 7 |
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 |
