test and add crude code generation
pull out the lit on a good match
put all the runtime stuff in one place instead of being janky with code generation
clean up into one (require)
add some small optimizations to generated bnf
move some shared functions to util