public ParserState(Algorithm algorithm, AbstractParserFactory factory, int k) throws MaltChainedException {
this.algorithm = algorithm;
this.factory = factory;
setSymboltables(algorithm.getManager().getSymbolTables());
setHistoryStructure(new HistoryList());
setTransitionSystem(factory.makeTransitionSystem());
String decisionSettings = algorithm.getManager().getOptionValue("guide", "decision_settings").toString().trim();
getTransitionSystem().initTableHandlers(decisionSettings, symboltables);
setHistory(new History(decisionSettings, algorithm.getManager().getOptionValue("guide", "classitem_separator").toString(), getTransitionSystem().getTableHandlers()));
getTransitionSystem().initTransitionSystem(history);