...
CFGrammarcfGrammar = newGrammarParser()
.addVariables("S, A, B")
.addTerminals("a")
.addProduction("1 S->AB")
.addProduction("2 S->a")
.addProduction("3 A->a")
.addStart('S')
.build();
// build new grammar with converter and run desired action UselessCharacterRemoveruselessCharacterRemover = newUselessCharacterRemover(cfGrammar).removeUselessCharacters();
// get new grammarCFGrammarresult = uselessCharacterRemover.result;
// get any part of resultList<GrammarCharacter> uselessCharacters = uselessCharacterRemover.uselessCharacters;
List<Variable> deadVariables = uselessCharacterRemover.deadVariables;
List<GrammarCharacter> unreachableCharacters = uselessCharacterRemover.unreachableCharacters;
...
About
Theory of Computation & Automata Theory algorithms and structures implementation