checkpoint work on expr parser/printer
initial parse working
clean up spaces use
get ltoken() to work for case-insensitive tokens
get listOf() working
clean up whitespace def a bit
more cleanup
yet more cleanup
more cleanup
starting to work
make json parsing work
clean up
remove ?
remove token() calls
hex -> hexdigit
use not exprs instead of sem. predicates
collapse echar, reorder value
clean up char, echar
add cslist() rule
remove ws rule