preliminary support for full data type definition syntax, misc improvements on error reporting (hopefully)