package org.batfish.grammar.cisco;
import org.batfish.common.BatfishException;
import org.batfish.datamodel.ConfigurationFormat;
import org.batfish.grammar.BatfishCombinedParser;
import org.batfish.grammar.cisco.CiscoParser.Cisco_configurationContext;
import org.batfish.main.Settings;
public class CiscoCombinedParser
extends BatfishCombinedParser<CiscoParser, CiscoLexer> {
public CiscoCombinedParser(String input, Settings settings,
ConfigurationFormat format) {
super(CiscoParser.class, CiscoLexer.class, input, settings);
boolean multilineBgpNeighbors;
boolean foundry = false;
// do not rearrange cases
switch (format) {
case FOUNDRY:
foundry = true;
case ARISTA:
case CISCO_IOS:
case FORCE10:
multilineBgpNeighbors = false;
break;
case CISCO_IOS_XR:
case CISCO_NX:
multilineBgpNeighbors = true;
break;
// $CASES-OMITTED$
default:
throw new BatfishException("Should not be possible");
}
_lexer.setFoundry(foundry);
_parser.setMultilineBgpNeighbors(multilineBgpNeighbors);
}
@Override
public Cisco_configurationContext parse() {
return _parser.cisco_configuration();
}
}