move tests of Fn to test_base, now test_grammar is for proper grammar tests
external call that don't call the start symbol
don't use ( and ) for nesting, too sensitive, generate IDs instead (VIM specific?)
catch accidental global assignments from now on
nicer assert on improper method call