grammar and parser modified