refactor class involved rules
use user defined literals for some parsers
allow '@' prefix for instance variable names