| SExp ::= Atom | SEList
SEList ::= Empty | Cons(SExp, SEList)
Atom ::= text | number | boolean
text ::= string | symbol
string ::= "non-quote-char*"
symbol ::= non-special-char*
non-quote-char ::= alphanumeric | escapes | white-sp-char | other
escapes ::= \" | \\
white-sp-char ::= ascii chars from 0-32
boolean ::= true | false
number ::= digit* {. digit*}
|