// parser: parses tokens from lexer into events