Use `parsimonious` to validate type name
Merge into single script; Update PEG grammar
Improve error reporting of code generator
Update readme
Add tuple types to predefined set