COMPILER expr CHARACTERS whitespace = CHR(32) + CHR(9) + CHR(10) + CHR(13) + CHR(12). symbolchar = ANY - "." - "(" - ")" - "{" - "}" - "|" - whitespace. IGNORE whitespace TOKENS atom = symbolchar { symbolchar }. PRODUCTIONS expr = pair | atom . pair = list | quote | function . list = "(" {expr} expr ["." expr] ")" . quote = "'" expr . function = "{" "|" parameterlist "|" expr "}" . parameterlist = expr | [expr] "." expr . END expr.