changed a couple of variable names to satisfy pylint.
Changed a local variable named expr_grammar to this_expr_grammar so as not to clash with the expr_grammar defined at the module scope
Renamed some number related grammars to not use up a common name in the module scope
Slight improvements to  but mostly cosmetic.
Had to move a pylint directive for it to take effect, and also added a docstring.