crisp 0.2.2

A small, expressive Lisp-inspired programming language.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
WHITESPACE = _{ " " | "\t" | "\r" | "\n" }
COMMENT    = _{ ";" ~ (!"\n" ~ ANY)* }

file = { SOI ~ s_expr* ~ EOI }

s_expr = _{ list | atom }

list =  { "(" ~ s_expr* ~ ")" }
atom = _{ number | boolean | symbol | string }

number  = @{ "-"? ~ ASCII_DIGIT+ ~ ("." ~ ASCII_DIGIT+)? }
boolean = @{ "true" | "false" }
symbol  = @{ (ASCII_ALPHANUMERIC | ":" | "_" | "-" | "!" | "$" | "%" | "&" | "*" | "+" | "." | "/" | "<" | "=" | ">" | "?" | "@" | "^" | "~")+ }
string  = ${ "\"" ~ (!"\"" ~ ANY)* ~ "\"" }