aboutsummaryrefslogtreecommitdiffstats
path: root/src/grammar.pest
blob: 4fce0170f2abaad1555f86bbfff5df61ed7db750 (plain)
1
2
3
4
5
6
7
8
9
COMMENT = _{ "#" ~ (!("#" | NEWLINE) ~ ANY)* ~ NEWLINE* }
WHITESPACE = _{ " " | "\t" | NEWLINE }
program = { SOI ~ statement+ ~ EOI }
statement = { (definition | expression) }
definition = { symbol ~ "=" ~ expression ~ ";"+ }
expression = { (symbol | integer_literal | string_literal | ("(" ~ expression ~ ")"))+ ~ ";" }
integer_literal = @{ "-"? ~ ASCII_DIGIT+ }
string_literal = { QUOTATION_MARK ~ (!QUOTATION_MARK ~ ANY)* ~ QUOTATION_MARK }
symbol = @{ (ASCII_ALPHA | "_.") ~ (ASCII_ALPHANUMERIC | "-" | "." | "?" | "!")* }