another version of parser, with custom grammar + version that should preserve comments (not working correctly yet)