package parser; import java.util.AbstractMap.SimpleEntry; import java.util.List; import java.util.Map; import java.util.Map.Entry; public class LL1ParsingTable implements ILL1ParsingTable { private final String start; private final List terminals; private final List nonterminals; private final String epsilon; private final Map, ? extends List> parsetable; public LL1ParsingTable(List nonterminals, List terminals, String start, String epsilon, Map, ? extends List> parsetable) { this.start = start; this.terminals = terminals; this.nonterminals = nonterminals; this.epsilon = epsilon; this.parsetable = parsetable; } @Override public List get(String nonterminal, String terminal) { return this.parsetable.get(new SimpleEntry<>(nonterminal, terminal)); } @Override public String getStartSymbol() { return this.start; } @Override public List getNonterminals() { return this.nonterminals; } @Override public List getTerminals() { return this.terminals; } @Override public String getEpsilon() { return this.epsilon; } }