Improved character handling.
Split functions back into separate grammar entries, with DSL body.