//!top @top Program { expression* } //!expression expression { Identifier | String | Boolean | Application } Application { "(" expression* ")" } //!tokens @tokens { Identifier { $[a-zA-Z_]+ } String { '"' (!["\\] | "\\" _)* '"' } Boolean { "#t" | "#f" } LineComment { ";" ![\n]* } space { $[ \t\n\r]+ } "(" ")" } //!skip @skip { space | LineComment } //!delim @detectDelim