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