refactoring : CFGrammar now knows its startSymbol and emptySymbol
Fixed parsing, added (simple) test cases