Cleanup parser.l and implement basic parser.y functionality