improve names of parser and grammar
use visitor to visit current scope
remember current class definition