see #2167 parsing "names" section

This commit is contained in:
Vadim Kurland
2011-03-13 12:26:45 -07:00
parent f46bd98736
commit e748c72a1f
6 changed files with 615 additions and 514 deletions
+200 -198
View File
@@ -46,52 +46,54 @@ PIXCfgLexer::PIXCfgLexer(const ANTLR_USE_NAMESPACE(antlr)LexerSharedInputState&
void PIXCfgLexer::initLiterals()
{
literals["host"] = 29;
literals["setroute"] = 55;
literals["log"] = 32;
literals["access-list"] = 17;
literals["interface"] = 38;
literals["standby"] = 47;
literals["remark"] = 43;
literals["certificate"] = 10;
literals["exit"] = 51;
literals["udp"] = 23;
literals["tcp"] = 22;
literals["controller"] = 37;
literals["eq"] = 24;
literals["crypto"] = 8;
literals["host"] = 31;
literals["setroute"] = 57;
literals["log"] = 34;
literals["access-list"] = 19;
literals["interface"] = 40;
literals["standby"] = 49;
literals["remark"] = 45;
literals["certificate"] = 12;
literals["exit"] = 53;
literals["name"] = 9;
literals["udp"] = 25;
literals["tcp"] = 24;
literals["controller"] = 39;
literals["eq"] = 26;
literals["crypto"] = 10;
literals["ip"] = 5;
literals["access-group"] = 50;
literals["time-range"] = 36;
literals["access-group"] = 52;
literals["time-range"] = 38;
literals["community-list"] = 7;
literals["icmp"] = 21;
literals["description"] = 42;
literals["Version"] = 13;
literals["nameif"] = 41;
literals["security-level"] = 40;
literals["secondary"] = 54;
literals["access"] = 49;
literals["lt"] = 26;
literals["range"] = 28;
literals["switchport"] = 48;
literals["log-input"] = 33;
literals["standard"] = 57;
literals["gt"] = 25;
literals["permit"] = 19;
literals["extended"] = 56;
literals["address"] = 45;
literals["established"] = 34;
literals["dhcp"] = 46;
literals["neq"] = 27;
literals["icmp"] = 23;
literals["description"] = 44;
literals["Version"] = 15;
literals["nameif"] = 43;
literals["security-level"] = 42;
literals["secondary"] = 56;
literals["access"] = 51;
literals["lt"] = 28;
literals["range"] = 30;
literals["switchport"] = 50;
literals["log-input"] = 35;
literals["standard"] = 59;
literals["gt"] = 27;
literals["names"] = 8;
literals["permit"] = 21;
literals["extended"] = 58;
literals["address"] = 47;
literals["established"] = 36;
literals["dhcp"] = 48;
literals["neq"] = 29;
literals["quit"] = 6;
literals["vlan"] = 39;
literals["any"] = 31;
literals["deny"] = 20;
literals["shutdown"] = 44;
literals["hostname"] = 15;
literals["PIX"] = 11;
literals["ASA"] = 12;
literals["fragments"] = 35;
literals["vlan"] = 41;
literals["any"] = 33;
literals["deny"] = 22;
literals["shutdown"] = 46;
literals["hostname"] = 17;
literals["PIX"] = 13;
literals["ASA"] = 14;
literals["fragments"] = 37;
}
ANTLR_USE_NAMESPACE(antlr)RefToken PIXCfgLexer::nextToken()
@@ -408,11 +410,11 @@ void PIXCfgLexer::mLINE_COMMENT(bool _createToken) {
}
}
else {
goto _loop89;
goto _loop93;
}
}
_loop89:;
_loop93:;
} // ( ... )*
mNEWLINE(false);
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
@@ -444,9 +446,9 @@ void PIXCfgLexer::mNEWLINE(bool _createToken) {
}
if ( inputState->guessing==0 ) {
#line 799 "pix.g"
#line 820 "pix.g"
newline();
#line 450 "PIXCfgLexer.cpp"
#line 452 "PIXCfgLexer.cpp"
}
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
_token = makeToken(_ttype);
@@ -470,11 +472,11 @@ void PIXCfgLexer::mCOLON_COMMENT(bool _createToken) {
}
}
else {
goto _loop93;
goto _loop97;
}
}
_loop93:;
_loop97:;
} // ( ... )*
mNEWLINE(false);
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
@@ -568,9 +570,9 @@ void PIXCfgLexer::mWhitespace(bool _createToken) {
}
}
if ( inputState->guessing==0 ) {
#line 794 "pix.g"
#line 815 "pix.g"
_ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP;
#line 574 "PIXCfgLexer.cpp"
#line 576 "PIXCfgLexer.cpp"
}
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
_token = makeToken(_ttype);
@@ -682,44 +684,14 @@ void PIXCfgLexer::mNUMBER(bool _createToken) {
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
{
bool synPredMatched112 = false;
bool synPredMatched116 = false;
if ((((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ )) && (_tokenSet_2.member(LA(2))) && (_tokenSet_2.member(LA(3))) && (_tokenSet_2.member(LA(4))) && (_tokenSet_2.member(LA(5))) && (_tokenSet_2.member(LA(6))) && (_tokenSet_2.member(LA(7))) && (true) && (true) && (true))) {
int _m112 = mark();
synPredMatched112 = true;
int _m116 = mark();
synPredMatched116 = true;
inputState->guessing++;
try {
{
{ // ( ... )+
int _cnt107=0;
for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
mDIGIT(false);
}
else {
if ( _cnt107>=1 ) { goto _loop107; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
}
_cnt107++;
}
_loop107:;
} // ( ... )+
mDOT(false);
{ // ( ... )+
int _cnt109=0;
for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
mDIGIT(false);
}
else {
if ( _cnt109>=1 ) { goto _loop109; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
}
_cnt109++;
}
_loop109:;
} // ( ... )+
mDOT(false);
{ // ( ... )+
int _cnt111=0;
for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
@@ -733,47 +705,47 @@ void PIXCfgLexer::mNUMBER(bool _createToken) {
}
_loop111:;
} // ( ... )+
mDOT(false);
{ // ( ... )+
int _cnt113=0;
for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
mDIGIT(false);
}
else {
if ( _cnt113>=1 ) { goto _loop113; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
}
_cnt113++;
}
_loop113:;
} // ( ... )+
mDOT(false);
{ // ( ... )+
int _cnt115=0;
for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
mDIGIT(false);
}
else {
if ( _cnt115>=1 ) { goto _loop115; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
}
_cnt115++;
}
_loop115:;
} // ( ... )+
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
synPredMatched112 = false;
synPredMatched116 = false;
}
rewind(_m112);
rewind(_m116);
inputState->guessing--;
}
if ( synPredMatched112 ) {
if ( synPredMatched116 ) {
{
{ // ( ... )+
int _cnt115=0;
for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
mDIGIT(false);
}
else {
if ( _cnt115>=1 ) { goto _loop115; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
}
_cnt115++;
}
_loop115:;
} // ( ... )+
mDOT(false);
{ // ( ... )+
int _cnt117=0;
for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
mDIGIT(false);
}
else {
if ( _cnt117>=1 ) { goto _loop117; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
}
_cnt117++;
}
_loop117:;
} // ( ... )+
mDOT(false);
{ // ( ... )+
int _cnt119=0;
for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
@@ -802,117 +774,90 @@ void PIXCfgLexer::mNUMBER(bool _createToken) {
}
_loop121:;
} // ( ... )+
mDOT(false);
{ // ( ... )+
int _cnt123=0;
for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
mDIGIT(false);
}
else {
if ( _cnt123>=1 ) { goto _loop123; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
}
_cnt123++;
}
_loop123:;
} // ( ... )+
mDOT(false);
{ // ( ... )+
int _cnt125=0;
for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
mDIGIT(false);
}
else {
if ( _cnt125>=1 ) { goto _loop125; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
}
_cnt125++;
}
_loop125:;
} // ( ... )+
}
if ( inputState->guessing==0 ) {
#line 819 "pix.g"
#line 840 "pix.g"
_ttype = IPV4;
#line 810 "PIXCfgLexer.cpp"
#line 812 "PIXCfgLexer.cpp"
}
}
else {
bool synPredMatched127 = false;
bool synPredMatched131 = false;
if ((((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ )) && (_tokenSet_2.member(LA(2))) && (_tokenSet_2.member(LA(3))) && (true) && (true) && (true) && (true) && (true) && (true) && (true))) {
int _m127 = mark();
synPredMatched127 = true;
int _m131 = mark();
synPredMatched131 = true;
inputState->guessing++;
try {
{
{ // ( ... )+
int _cnt124=0;
int _cnt128=0;
for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
mDIGIT(false);
}
else {
if ( _cnt124>=1 ) { goto _loop124; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
if ( _cnt128>=1 ) { goto _loop128; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
}
_cnt124++;
_cnt128++;
}
_loop124:;
_loop128:;
} // ( ... )+
mDOT(false);
{ // ( ... )+
int _cnt126=0;
int _cnt130=0;
for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
mDIGIT(false);
}
else {
if ( _cnt126>=1 ) { goto _loop126; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
if ( _cnt130>=1 ) { goto _loop130; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
}
_cnt126++;
_cnt130++;
}
_loop126:;
_loop130:;
} // ( ... )+
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
synPredMatched127 = false;
synPredMatched131 = false;
}
rewind(_m127);
rewind(_m131);
inputState->guessing--;
}
if ( synPredMatched127 ) {
if ( synPredMatched131 ) {
{
{ // ( ... )+
int _cnt130=0;
for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
mDIGIT(false);
}
else {
if ( _cnt130>=1 ) { goto _loop130; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
}
_cnt130++;
}
_loop130:;
} // ( ... )+
mDOT(false);
{ // ( ... )+
int _cnt132=0;
for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
mDIGIT(false);
}
else {
if ( _cnt132>=1 ) { goto _loop132; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
}
_cnt132++;
}
_loop132:;
} // ( ... )+
}
}
else if ((LA(1) == 0x30 /* '0' */ ) && (LA(2) == 0x78 /* 'x' */ )) {
{
match('0' /* charlit */ );
match('x' /* charlit */ );
{ // ( ... )+
int _cnt137=0;
for (;;) {
if ((_tokenSet_3.member(LA(1)))) {
mHEXDIGIT(false);
}
else {
if ( _cnt137>=1 ) { goto _loop137; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
}
_cnt137++;
}
_loop137:;
} // ( ... )+
}
if ( inputState->guessing==0 ) {
#line 825 "pix.g"
_ttype = HEX_CONST;
#line 913 "PIXCfgLexer.cpp"
}
}
else if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ )) && (true) && (true) && (true) && (true) && (true) && (true) && (true) && (true) && (true)) {
{ // ( ... )+
int _cnt134=0;
for (;;) {
@@ -927,10 +872,67 @@ void PIXCfgLexer::mNUMBER(bool _createToken) {
}
_loop134:;
} // ( ... )+
mDOT(false);
{ // ( ... )+
int _cnt136=0;
for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
mDIGIT(false);
}
else {
if ( _cnt136>=1 ) { goto _loop136; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
}
_cnt136++;
}
_loop136:;
} // ( ... )+
}
}
else if ((LA(1) == 0x30 /* '0' */ ) && (LA(2) == 0x78 /* 'x' */ )) {
{
match('0' /* charlit */ );
match('x' /* charlit */ );
{ // ( ... )+
int _cnt141=0;
for (;;) {
if ((_tokenSet_3.member(LA(1)))) {
mHEXDIGIT(false);
}
else {
if ( _cnt141>=1 ) { goto _loop141; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
}
_cnt141++;
}
_loop141:;
} // ( ... )+
}
if ( inputState->guessing==0 ) {
#line 823 "pix.g"
#line 846 "pix.g"
_ttype = HEX_CONST;
#line 915 "PIXCfgLexer.cpp"
}
}
else if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ )) && (true) && (true) && (true) && (true) && (true) && (true) && (true) && (true) && (true)) {
{ // ( ... )+
int _cnt138=0;
for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
mDIGIT(false);
}
else {
if ( _cnt138>=1 ) { goto _loop138; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
}
_cnt138++;
}
_loop138:;
} // ( ... )+
if ( inputState->guessing==0 ) {
#line 844 "pix.g"
_ttype = INT_CONST;
#line 934 "PIXCfgLexer.cpp"
#line 936 "PIXCfgLexer.cpp"
}
}
else {
@@ -1191,11 +1193,11 @@ void PIXCfgLexer::mWORD(bool _createToken) {
}
default:
{
goto _loop141;
goto _loop145;
}
}
}
_loop141:;
_loop145:;
} // ( ... )*
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
_token = makeToken(_ttype);
@@ -1217,11 +1219,11 @@ void PIXCfgLexer::mSTRING(bool _createToken) {
matchNot('\"' /* charlit */ );
}
else {
goto _loop144;
goto _loop148;
}
}
_loop144:;
_loop148:;
} // ( ... )*
match('\"' /* charlit */ );
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
@@ -1591,7 +1593,7 @@ const unsigned long PIXCfgLexer::_tokenSet_1_data_[] = { 4294958072UL, 429496729
// 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xb 0xc 0xe 0xf 0x10 0x11 0x12 0x13 0x14
// 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f ! \" # $ %
// & \' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G
// H I J K L M N O P Q R S T U V W X Y
// H I J K L M N O P Q R S T U V W X Y Z [
const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgLexer::_tokenSet_1(_tokenSet_1_data_,16);
const unsigned long PIXCfgLexer::_tokenSet_2_data_[] = { 0UL, 67059712UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
// . 0 1 2 3 4 5 6 7 8 9
@@ -1603,6 +1605,6 @@ const unsigned long PIXCfgLexer::_tokenSet_4_data_[] = { 4294967288UL, 429496729
// 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 0x11 0x12 0x13
// 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f ! # $
// % & \' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F
// G H I J K L M N O P Q R S T U V W X Y
// G H I J K L M N O P Q R S T U V W X Y Z [
const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgLexer::_tokenSet_4(_tokenSet_4_data_,16);
+220 -150
View File
@@ -130,6 +130,11 @@ void PIXCfgParser::cfgfile() {
quit();
break;
}
case NAMES:
{
names_section();
break;
}
case CRYPTO:
{
crypto();
@@ -221,13 +226,13 @@ void PIXCfgParser::version() {
match(VERSION_WORD);
match(NUMBER);
if ( inputState->guessing==0 ) {
#line 165 "pix.g"
#line 182 "pix.g"
importer->setDiscoveredVersion(LT(0)->getText());
*dbg << "VERSION " << LT(0)->getText() << std::endl;
consumeUntil(NEWLINE);
#line 231 "PIXCfgParser.cpp"
#line 236 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
@@ -263,14 +268,14 @@ void PIXCfgParser::hostname() {
}
}
if ( inputState->guessing==0 ) {
#line 174 "pix.g"
#line 191 "pix.g"
importer->setHostName( LT(0)->getText() );
*dbg << "HOSTNAME "
<< "LT0=" << LT(0)->getText()
<< std::endl;
#line 274 "PIXCfgParser.cpp"
#line 279 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
@@ -336,14 +341,14 @@ void PIXCfgParser::intrface() {
in = LT(1);
match(WORD);
if ( inputState->guessing==0 ) {
#line 475 "pix.g"
#line 492 "pix.g"
importer->newInterface( in->getText() );
*dbg << in->getLine() << ":"
<< " INTRFACE: " << in->getText() << std::endl;
consumeUntil(NEWLINE);
#line 347 "PIXCfgParser.cpp"
#line 352 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
@@ -364,12 +369,12 @@ void PIXCfgParser::vlan_interface() {
vlan_id = LT(1);
match(INT_CONST);
if ( inputState->guessing==0 ) {
#line 484 "pix.g"
#line 501 "pix.g"
importer->setInterfaceVlanId(vlan_id->getText());
*dbg << " VLAN: " << vlan_id->getText() << std::endl;
#line 373 "PIXCfgParser.cpp"
#line 378 "PIXCfgParser.cpp"
}
match(NEWLINE);
}
@@ -391,12 +396,12 @@ void PIXCfgParser::sec_level() {
sec_level = LT(1);
match(INT_CONST);
if ( inputState->guessing==0 ) {
#line 492 "pix.g"
#line 509 "pix.g"
importer->setInterfaceSecurityLevel(sec_level->getText());
*dbg << "SEC_LEVEL: " << sec_level->getText() << std::endl;
#line 400 "PIXCfgParser.cpp"
#line 405 "PIXCfgParser.cpp"
}
match(NEWLINE);
}
@@ -442,7 +447,7 @@ void PIXCfgParser::nameif() {
}
}
if ( inputState->guessing==0 ) {
#line 500 "pix.g"
#line 517 "pix.g"
std::string label = (intf_label) ? intf_label->getText() : "";
std::string seclevel = (sec_level) ? sec_level->getText() : "";
@@ -450,7 +455,7 @@ void PIXCfgParser::nameif() {
*dbg << " NAMEIF: "
<< phys_intf->getText() << label << seclevel << std::endl;
#line 454 "PIXCfgParser.cpp"
#line 459 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
@@ -468,12 +473,12 @@ void PIXCfgParser::controller() {
try { // for error handling
match(CONTROLLER);
if ( inputState->guessing==0 ) {
#line 429 "pix.g"
#line 446 "pix.g"
importer->clearCurrentInterface();
consumeUntil(NEWLINE);
#line 477 "PIXCfgParser.cpp"
#line 482 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
@@ -494,14 +499,14 @@ void PIXCfgParser::access_list_commands() {
acl_num = LT(1);
match(INT_CONST);
if ( inputState->guessing==0 ) {
#line 189 "pix.g"
#line 206 "pix.g"
importer->newUnidirRuleSet( std::string("acl_") + acl_num->getText(),
libfwbuilder::Policy::TYPENAME );
*dbg << acl_num->getLine() << ":"
<< " ACL #" << acl_num->getText() << " ";
#line 505 "PIXCfgParser.cpp"
#line 510 "PIXCfgParser.cpp"
}
{
switch ( LA(1)) {
@@ -557,7 +562,7 @@ void PIXCfgParser::description() {
try { // for error handling
match(DESCRIPTION);
if ( inputState->guessing==0 ) {
#line 512 "pix.g"
#line 529 "pix.g"
*dbg << LT(1)->getLine() << ":";
std::string descr;
@@ -570,7 +575,7 @@ void PIXCfgParser::description() {
*dbg << " DESCRIPTION " << descr << std::endl;
//consumeUntil(NEWLINE);
#line 574 "PIXCfgParser.cpp"
#line 579 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
@@ -588,13 +593,13 @@ void PIXCfgParser::shutdown() {
try { // for error handling
match(SHUTDOWN);
if ( inputState->guessing==0 ) {
#line 547 "pix.g"
#line 564 "pix.g"
importer->ignoreCurrentInterface();
*dbg<< LT(1)->getLine() << ":"
<< " INTERFACE SHUTDOWN " << std::endl;
#line 598 "PIXCfgParser.cpp"
#line 603 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
@@ -613,12 +618,12 @@ void PIXCfgParser::certificate() {
match(CERTIFICATE);
match(WORD);
if ( inputState->guessing==0 ) {
#line 157 "pix.g"
#line 174 "pix.g"
consumeUntil(NEWLINE);
consumeUntil(QUIT);
#line 622 "PIXCfgParser.cpp"
#line 627 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
@@ -636,11 +641,47 @@ void PIXCfgParser::quit() {
try { // for error handling
match(QUIT);
if ( inputState->guessing==0 ) {
#line 129 "pix.g"
#line 131 "pix.g"
consumeUntil(NEWLINE);
#line 644 "PIXCfgParser.cpp"
#line 649 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
if( inputState->guessing == 0 ) {
reportError(ex);
recover(ex,_tokenSet_1);
} else {
throw;
}
}
}
void PIXCfgParser::names_section() {
try { // for error handling
match(NAMES);
{ // ( ... )*
for (;;) {
if ((LA(1) == NAME)) {
name_entry();
}
else {
goto _loop10;
}
}
_loop10:;
} // ( ... )*
if ( inputState->guessing==0 ) {
#line 145 "pix.g"
importer->addMessageToLog("Parser warning: \"names\" section detected. "
"Import of configuration that uses \"names\" "
"is not supported at this time");
#line 685 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
@@ -658,11 +699,11 @@ void PIXCfgParser::crypto() {
try { // for error handling
match(CRYPTO);
if ( inputState->guessing==0 ) {
#line 143 "pix.g"
#line 160 "pix.g"
consumeUntil(NEWLINE);
#line 666 "PIXCfgParser.cpp"
#line 707 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
@@ -680,11 +721,11 @@ void PIXCfgParser::unknown_command() {
try { // for error handling
match(WORD);
if ( inputState->guessing==0 ) {
#line 150 "pix.g"
#line 167 "pix.g"
consumeUntil(NEWLINE);
#line 688 "PIXCfgParser.cpp"
#line 729 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
@@ -705,13 +746,13 @@ void PIXCfgParser::ip_access_list_ext() {
name = LT(1);
match(WORD);
if ( inputState->guessing==0 ) {
#line 207 "pix.g"
#line 224 "pix.g"
importer->newUnidirRuleSet( name->getText(), libfwbuilder::Policy::TYPENAME );
*dbg << name->getLine() << ":"
<< " ACL ext " << name->getText() << std::endl;
#line 715 "PIXCfgParser.cpp"
#line 756 "PIXCfgParser.cpp"
}
{
switch ( LA(1)) {
@@ -748,12 +789,12 @@ void PIXCfgParser::ip_access_list_ext() {
}
}
if ( inputState->guessing==0 ) {
#line 223 "pix.g"
#line 240 "pix.g"
*dbg << LT(0)->getLine() << ":"
<< " ACL line end" << std::endl << std::endl;
#line 757 "PIXCfgParser.cpp"
#line 798 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
@@ -809,11 +850,11 @@ void PIXCfgParser::community_list_command() {
try { // for error handling
match(COMMUNITY_LIST);
if ( inputState->guessing==0 ) {
#line 136 "pix.g"
#line 138 "pix.g"
consumeUntil(NEWLINE);
#line 817 "PIXCfgParser.cpp"
#line 858 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
@@ -826,28 +867,50 @@ void PIXCfgParser::community_list_command() {
}
}
void PIXCfgParser::name_entry() {
try { // for error handling
match(NAME);
if ( inputState->guessing==0 ) {
#line 153 "pix.g"
consumeUntil(NEWLINE);
#line 880 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
if( inputState->guessing == 0 ) {
reportError(ex);
recover(ex,_tokenSet_2);
} else {
throw;
}
}
}
void PIXCfgParser::permit_ext() {
try { // for error handling
match(PERMIT);
if ( inputState->guessing==0 ) {
#line 231 "pix.g"
#line 248 "pix.g"
importer->setCurrentLineNumber(LT(0)->getLine());
importer->newPolicyRule();
importer->action = "permit";
*dbg << LT(1)->getLine() << ":" << " permit ";
#line 842 "PIXCfgParser.cpp"
#line 905 "PIXCfgParser.cpp"
}
rule_ext();
match(NEWLINE);
if ( inputState->guessing==0 ) {
#line 238 "pix.g"
#line 255 "pix.g"
importer->pushRule();
#line 851 "PIXCfgParser.cpp"
#line 914 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
@@ -865,23 +928,23 @@ void PIXCfgParser::deny_ext() {
try { // for error handling
match(DENY);
if ( inputState->guessing==0 ) {
#line 244 "pix.g"
#line 261 "pix.g"
importer->setCurrentLineNumber(LT(0)->getLine());
importer->newPolicyRule();
importer->action = "deny";
*dbg << LT(1)->getLine() << ":" << " deny ";
#line 876 "PIXCfgParser.cpp"
#line 939 "PIXCfgParser.cpp"
}
rule_ext();
match(NEWLINE);
if ( inputState->guessing==0 ) {
#line 251 "pix.g"
#line 268 "pix.g"
importer->pushRule();
#line 885 "PIXCfgParser.cpp"
#line 948 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
@@ -899,7 +962,7 @@ void PIXCfgParser::remark() {
try { // for error handling
match(REMARK);
if ( inputState->guessing==0 ) {
#line 532 "pix.g"
#line 549 "pix.g"
*dbg << LT(1)->getLine() << ":";
std::string rem;
@@ -912,7 +975,7 @@ void PIXCfgParser::remark() {
*dbg << " REMARK " << rem << std::endl;
//consumeUntil(NEWLINE);
#line 916 "PIXCfgParser.cpp"
#line 979 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
@@ -936,15 +999,15 @@ void PIXCfgParser::rule_ext() {
ip_protocols();
hostaddr_ext();
if ( inputState->guessing==0 ) {
#line 261 "pix.g"
#line 278 "pix.g"
importer->SaveTmpAddrToSrc(); *dbg << "(src) ";
#line 942 "PIXCfgParser.cpp"
#line 1005 "PIXCfgParser.cpp"
}
hostaddr_ext();
if ( inputState->guessing==0 ) {
#line 262 "pix.g"
#line 279 "pix.g"
importer->SaveTmpAddrToDst(); *dbg << "(dst) ";
#line 948 "PIXCfgParser.cpp"
#line 1011 "PIXCfgParser.cpp"
}
{
switch ( LA(1)) {
@@ -1009,24 +1072,24 @@ void PIXCfgParser::rule_ext() {
{
match(ICMP);
if ( inputState->guessing==0 ) {
#line 268 "pix.g"
#line 285 "pix.g"
importer->protocol = LT(0)->getText();
*dbg << "protocol " << LT(0)->getText() << " ";
#line 1018 "PIXCfgParser.cpp"
#line 1081 "PIXCfgParser.cpp"
}
hostaddr_ext();
if ( inputState->guessing==0 ) {
#line 272 "pix.g"
#line 289 "pix.g"
importer->SaveTmpAddrToSrc(); *dbg << "(src) ";
#line 1024 "PIXCfgParser.cpp"
#line 1087 "PIXCfgParser.cpp"
}
hostaddr_ext();
if ( inputState->guessing==0 ) {
#line 273 "pix.g"
#line 290 "pix.g"
importer->SaveTmpAddrToDst(); *dbg << "(dst) ";
#line 1030 "PIXCfgParser.cpp"
#line 1093 "PIXCfgParser.cpp"
}
{
switch ( LA(1)) {
@@ -1131,18 +1194,18 @@ void PIXCfgParser::rule_ext() {
}
}
if ( inputState->guessing==0 ) {
#line 280 "pix.g"
#line 297 "pix.g"
importer->protocol = LT(0)->getText();
*dbg << "protocol " << LT(0)->getText() << " ";
#line 1140 "PIXCfgParser.cpp"
#line 1203 "PIXCfgParser.cpp"
}
hostaddr_ext();
if ( inputState->guessing==0 ) {
#line 284 "pix.g"
#line 301 "pix.g"
importer->SaveTmpAddrToSrc(); *dbg << "(src) ";
#line 1146 "PIXCfgParser.cpp"
#line 1209 "PIXCfgParser.cpp"
}
{
switch ( LA(1)) {
@@ -1154,9 +1217,9 @@ void PIXCfgParser::rule_ext() {
{
xoperator();
if ( inputState->guessing==0 ) {
#line 285 "pix.g"
#line 302 "pix.g"
importer->SaveTmpPortToSrc();
#line 1160 "PIXCfgParser.cpp"
#line 1223 "PIXCfgParser.cpp"
}
break;
}
@@ -1174,9 +1237,9 @@ void PIXCfgParser::rule_ext() {
}
hostaddr_ext();
if ( inputState->guessing==0 ) {
#line 286 "pix.g"
#line 303 "pix.g"
importer->SaveTmpAddrToDst(); *dbg << "(dst) ";
#line 1180 "PIXCfgParser.cpp"
#line 1243 "PIXCfgParser.cpp"
}
{
switch ( LA(1)) {
@@ -1188,9 +1251,9 @@ void PIXCfgParser::rule_ext() {
{
xoperator();
if ( inputState->guessing==0 ) {
#line 287 "pix.g"
#line 304 "pix.g"
importer->SaveTmpPortToDst();
#line 1194 "PIXCfgParser.cpp"
#line 1257 "PIXCfgParser.cpp"
}
break;
}
@@ -1296,17 +1359,17 @@ void PIXCfgParser::rule_ext() {
}
}
if ( inputState->guessing==0 ) {
#line 293 "pix.g"
#line 310 "pix.g"
*dbg << std::endl;
#line 1304 "PIXCfgParser.cpp"
#line 1367 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
if( inputState->guessing == 0 ) {
reportError(ex);
recover(ex,_tokenSet_2);
recover(ex,_tokenSet_3);
} else {
throw;
}
@@ -1335,18 +1398,18 @@ void PIXCfgParser::ip_protocols() {
}
}
if ( inputState->guessing==0 ) {
#line 301 "pix.g"
#line 318 "pix.g"
importer->protocol = LT(0)->getText();
*dbg << "protocol " << LT(0)->getText() << " ";
#line 1344 "PIXCfgParser.cpp"
#line 1407 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
if( inputState->guessing == 0 ) {
reportError(ex);
recover(ex,_tokenSet_3);
recover(ex,_tokenSet_4);
} else {
throw;
}
@@ -1368,13 +1431,13 @@ void PIXCfgParser::hostaddr_ext() {
match(IPV4);
}
if ( inputState->guessing==0 ) {
#line 353 "pix.g"
#line 370 "pix.g"
importer->tmp_a = h->getText();
importer->tmp_nm = "0.0.0.0";
*dbg << h->getText() << "/0.0.0.0";
#line 1378 "PIXCfgParser.cpp"
#line 1441 "PIXCfgParser.cpp"
}
break;
}
@@ -1387,13 +1450,13 @@ void PIXCfgParser::hostaddr_ext() {
match(IPV4);
}
if ( inputState->guessing==0 ) {
#line 360 "pix.g"
#line 377 "pix.g"
importer->tmp_a = a->getText();
importer->tmp_nm = m->getText();
*dbg << a->getText() << "/" << m->getText();
#line 1397 "PIXCfgParser.cpp"
#line 1460 "PIXCfgParser.cpp"
}
break;
}
@@ -1401,13 +1464,13 @@ void PIXCfgParser::hostaddr_ext() {
{
match(ANY);
if ( inputState->guessing==0 ) {
#line 367 "pix.g"
#line 384 "pix.g"
importer->tmp_a = "0.0.0.0";
importer->tmp_nm = "0.0.0.0";
*dbg << "0.0.0.0/0.0.0.0";
#line 1411 "PIXCfgParser.cpp"
#line 1474 "PIXCfgParser.cpp"
}
break;
}
@@ -1420,7 +1483,7 @@ void PIXCfgParser::hostaddr_ext() {
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
if( inputState->guessing == 0 ) {
reportError(ex);
recover(ex,_tokenSet_4);
recover(ex,_tokenSet_5);
} else {
throw;
}
@@ -1435,18 +1498,18 @@ void PIXCfgParser::time_range() {
tr_name = LT(1);
match(WORD);
if ( inputState->guessing==0 ) {
#line 419 "pix.g"
#line 436 "pix.g"
importer->time_range_name = tr_name->getText();
*dbg << "time_range " << tr_name->getText() << " ";
#line 1444 "PIXCfgParser.cpp"
#line 1507 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
if( inputState->guessing == 0 ) {
reportError(ex);
recover(ex,_tokenSet_5);
recover(ex,_tokenSet_6);
} else {
throw;
}
@@ -1458,18 +1521,18 @@ void PIXCfgParser::fragments() {
try { // for error handling
match(FRAGMENTS);
if ( inputState->guessing==0 ) {
#line 412 "pix.g"
#line 429 "pix.g"
importer->fragments = true;
*dbg << "fragments ";
#line 1467 "PIXCfgParser.cpp"
#line 1530 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
if( inputState->guessing == 0 ) {
reportError(ex);
recover(ex,_tokenSet_6);
recover(ex,_tokenSet_7);
} else {
throw;
}
@@ -1498,18 +1561,18 @@ void PIXCfgParser::log() {
}
}
if ( inputState->guessing==0 ) {
#line 398 "pix.g"
#line 415 "pix.g"
importer->logging = true;
*dbg << "logging ";
#line 1507 "PIXCfgParser.cpp"
#line 1570 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
if( inputState->guessing == 0 ) {
reportError(ex);
recover(ex,_tokenSet_2);
recover(ex,_tokenSet_3);
} else {
throw;
}
@@ -1533,7 +1596,7 @@ void PIXCfgParser::icmp_spec() {
match(INT_CONST);
}
if ( inputState->guessing==0 ) {
#line 309 "pix.g"
#line 326 "pix.g"
importer->icmp_type = icmp_type->getText();
importer->icmp_code = icmp_code->getText();
@@ -1541,7 +1604,7 @@ void PIXCfgParser::icmp_spec() {
*dbg << icmp_type->getText() << " "
<< icmp_code->getText() << " ";
#line 1545 "PIXCfgParser.cpp"
#line 1608 "PIXCfgParser.cpp"
}
break;
}
@@ -1550,12 +1613,12 @@ void PIXCfgParser::icmp_spec() {
icmp_word = LT(1);
match(WORD);
if ( inputState->guessing==0 ) {
#line 318 "pix.g"
#line 335 "pix.g"
importer->icmp_spec = icmp_word->getText();
*dbg << icmp_word->getText() << " ";
#line 1559 "PIXCfgParser.cpp"
#line 1622 "PIXCfgParser.cpp"
}
break;
}
@@ -1569,7 +1632,7 @@ void PIXCfgParser::icmp_spec() {
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
if( inputState->guessing == 0 ) {
reportError(ex);
recover(ex,_tokenSet_7);
recover(ex,_tokenSet_8);
} else {
throw;
}
@@ -1602,7 +1665,7 @@ void PIXCfgParser::xoperator() {
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
if( inputState->guessing == 0 ) {
reportError(ex);
recover(ex,_tokenSet_8);
recover(ex,_tokenSet_9);
} else {
throw;
}
@@ -1614,18 +1677,18 @@ void PIXCfgParser::established() {
try { // for error handling
match(ESTABLISHED);
if ( inputState->guessing==0 ) {
#line 405 "pix.g"
#line 422 "pix.g"
importer->established = true;
*dbg << "established ";
#line 1623 "PIXCfgParser.cpp"
#line 1686 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
if( inputState->guessing == 0 ) {
reportError(ex);
recover(ex,_tokenSet_7);
recover(ex,_tokenSet_8);
} else {
throw;
}
@@ -1664,19 +1727,19 @@ void PIXCfgParser::single_port_op() {
}
}
if ( inputState->guessing==0 ) {
#line 329 "pix.g"
#line 346 "pix.g"
importer->tmp_port_op = LT(0)->getText();
*dbg << LT(0)->getText() << " ";
#line 1673 "PIXCfgParser.cpp"
#line 1736 "PIXCfgParser.cpp"
}
port_spec();
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
if( inputState->guessing == 0 ) {
reportError(ex);
recover(ex,_tokenSet_8);
recover(ex,_tokenSet_9);
} else {
throw;
}
@@ -1688,12 +1751,12 @@ void PIXCfgParser::port_range() {
try { // for error handling
match(P_RANGE);
if ( inputState->guessing==0 ) {
#line 337 "pix.g"
#line 354 "pix.g"
importer->tmp_port_op = LT(0)->getText();
*dbg << LT(0)->getText() << " ";
#line 1697 "PIXCfgParser.cpp"
#line 1760 "PIXCfgParser.cpp"
}
port_spec();
port_spec();
@@ -1701,7 +1764,7 @@ void PIXCfgParser::port_range() {
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
if( inputState->guessing == 0 ) {
reportError(ex);
recover(ex,_tokenSet_8);
recover(ex,_tokenSet_9);
} else {
throw;
}
@@ -1730,18 +1793,18 @@ void PIXCfgParser::port_spec() {
}
}
if ( inputState->guessing==0 ) {
#line 345 "pix.g"
#line 362 "pix.g"
importer->tmp_port_spec += (std::string(" ") + LT(0)->getText());
*dbg << LT(0)->getText() << " ";
#line 1739 "PIXCfgParser.cpp"
#line 1802 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
if( inputState->guessing == 0 ) {
reportError(ex);
recover(ex,_tokenSet_9);
recover(ex,_tokenSet_10);
} else {
throw;
}
@@ -1760,13 +1823,13 @@ void PIXCfgParser::hostaddr_std() {
match(IPV4);
}
if ( inputState->guessing==0 ) {
#line 376 "pix.g"
#line 393 "pix.g"
importer->tmp_a = h->getText();
importer->tmp_nm = "0.0.0.0";
*dbg << h->getText() << "/0.0.0.0";
#line 1770 "PIXCfgParser.cpp"
#line 1833 "PIXCfgParser.cpp"
}
}
else if ((LA(1) == IPV4) && (LA(2) == IPV4)) {
@@ -1777,25 +1840,25 @@ void PIXCfgParser::hostaddr_std() {
match(IPV4);
}
if ( inputState->guessing==0 ) {
#line 383 "pix.g"
#line 400 "pix.g"
importer->tmp_a = a->getText();
importer->tmp_nm = m->getText();
*dbg << a->getText() << "/" << m->getText();
#line 1787 "PIXCfgParser.cpp"
#line 1850 "PIXCfgParser.cpp"
}
}
else if ((LA(1) == ANY)) {
match(ANY);
if ( inputState->guessing==0 ) {
#line 390 "pix.g"
#line 407 "pix.g"
importer->tmp_a = "0.0.0.0";
importer->tmp_nm = "0.0.0.0";
*dbg << "0.0.0.0/0.0.0.0";
#line 1799 "PIXCfgParser.cpp"
#line 1862 "PIXCfgParser.cpp"
}
}
else {
@@ -1840,7 +1903,7 @@ void PIXCfgParser::intf_address() {
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
if( inputState->guessing == 0 ) {
reportError(ex);
recover(ex,_tokenSet_2);
recover(ex,_tokenSet_3);
} else {
throw;
}
@@ -1857,16 +1920,16 @@ void PIXCfgParser::switchport() {
vlan_num = LT(1);
match(WORD);
if ( inputState->guessing==0 ) {
#line 653 "pix.g"
#line 670 "pix.g"
#line 1864 "PIXCfgParser.cpp"
#line 1927 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
if( inputState->guessing == 0 ) {
reportError(ex);
recover(ex,_tokenSet_2);
recover(ex,_tokenSet_3);
} else {
throw;
}
@@ -1890,7 +1953,7 @@ void PIXCfgParser::v6_ip_address() {
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
if( inputState->guessing == 0 ) {
reportError(ex);
recover(ex,_tokenSet_2);
recover(ex,_tokenSet_3);
} else {
throw;
}
@@ -1920,7 +1983,7 @@ void PIXCfgParser::v7_ip_address() {
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
if( inputState->guessing == 0 ) {
reportError(ex);
recover(ex,_tokenSet_2);
recover(ex,_tokenSet_3);
} else {
throw;
}
@@ -1937,7 +2000,7 @@ void PIXCfgParser::v6_dhcp_address() {
dhcp = LT(1);
match(DHCP);
if ( inputState->guessing==0 ) {
#line 591 "pix.g"
#line 608 "pix.g"
std::string label = lbl->getText();
std::string addr = dhcp->getText();
@@ -1948,13 +2011,13 @@ void PIXCfgParser::v6_dhcp_address() {
// which we do not support
consumeUntil(NEWLINE);
#line 1952 "PIXCfgParser.cpp"
#line 2015 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
if( inputState->guessing == 0 ) {
reportError(ex);
recover(ex,_tokenSet_2);
recover(ex,_tokenSet_3);
} else {
throw;
}
@@ -1974,7 +2037,7 @@ void PIXCfgParser::v6_static_address() {
m = LT(1);
match(IPV4);
if ( inputState->guessing==0 ) {
#line 604 "pix.g"
#line 621 "pix.g"
std::string label = lbl->getText();
std::string addr = a->getText();
@@ -1985,13 +2048,13 @@ void PIXCfgParser::v6_static_address() {
// in case there are some other parameters after address and netmask
consumeUntil(NEWLINE);
#line 1989 "PIXCfgParser.cpp"
#line 2052 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
if( inputState->guessing == 0 ) {
reportError(ex);
recover(ex,_tokenSet_2);
recover(ex,_tokenSet_3);
} else {
throw;
}
@@ -2005,7 +2068,7 @@ void PIXCfgParser::v7_dhcp_address() {
dhcp = LT(1);
match(DHCP);
if ( inputState->guessing==0 ) {
#line 621 "pix.g"
#line 638 "pix.g"
std::string addr = dhcp->getText();
importer->addInterfaceAddress(addr, "");
@@ -2013,13 +2076,13 @@ void PIXCfgParser::v7_dhcp_address() {
<< " INTRFACE ADDRESS: " << addr << std::endl;
consumeUntil(NEWLINE);
#line 2017 "PIXCfgParser.cpp"
#line 2080 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
if( inputState->guessing == 0 ) {
reportError(ex);
recover(ex,_tokenSet_2);
recover(ex,_tokenSet_3);
} else {
throw;
}
@@ -2055,7 +2118,7 @@ void PIXCfgParser::v7_static_address() {
}
}
if ( inputState->guessing==0 ) {
#line 632 "pix.g"
#line 649 "pix.g"
std::string addr = a->getText();
std::string netm = m->getText();
@@ -2072,13 +2135,13 @@ void PIXCfgParser::v7_static_address() {
}
consumeUntil(NEWLINE);
#line 2076 "PIXCfgParser.cpp"
#line 2139 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
if( inputState->guessing == 0 ) {
reportError(ex);
recover(ex,_tokenSet_2);
recover(ex,_tokenSet_3);
} else {
throw;
}
@@ -2100,7 +2163,7 @@ void PIXCfgParser::access_group_by_name() {
intf_label = LT(1);
match(WORD);
if ( inputState->guessing==0 ) {
#line 660 "pix.g"
#line 677 "pix.g"
importer->setInterfaceAndDirectionForRuleSet(
acln->getText(),
@@ -2111,7 +2174,7 @@ void PIXCfgParser::access_group_by_name() {
<< " " << intf_label->getText()
<< " " << dir->getText() << std::endl;
#line 2115 "PIXCfgParser.cpp"
#line 2178 "PIXCfgParser.cpp"
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
@@ -2136,6 +2199,8 @@ const char* PIXCfgParser::tokenNames[] = {
"\"ip\"",
"\"quit\"",
"\"community-list\"",
"\"names\"",
"\"name\"",
"\"crypto\"",
"WORD",
"\"certificate\"",
@@ -2224,37 +2289,42 @@ const char* PIXCfgParser::tokenNames[] = {
const unsigned long PIXCfgParser::_tokenSet_0_data_[] = { 2UL, 0UL, 0UL, 0UL };
// EOF
const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_0(_tokenSet_0_data_,4);
const unsigned long PIXCfgParser::_tokenSet_1_data_[] = { 171890UL, 3676128UL, 0UL, 0UL };
// EOF NEWLINE "ip" "quit" "crypto" WORD "certificate" "PIX" "ASA" "hostname"
// "access-list" "controller" "interface" "vlan" "security-level" "nameif"
// "description" "shutdown" "exit" LINE_COMMENT COLON_COMMENT
const unsigned long PIXCfgParser::_tokenSet_1_data_[] = { 687474UL, 14704512UL, 0UL, 0UL };
// EOF NEWLINE "ip" "quit" "names" "crypto" WORD "certificate" "PIX" "ASA"
// "hostname" "access-list" "controller" "interface" "vlan" "security-level"
// "nameif" "description" "shutdown" "exit" LINE_COMMENT COLON_COMMENT
const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_1(_tokenSet_1_data_,4);
const unsigned long PIXCfgParser::_tokenSet_2_data_[] = { 16UL, 0UL, 0UL, 0UL };
// NEWLINE
const unsigned long PIXCfgParser::_tokenSet_2_data_[] = { 687986UL, 14704512UL, 0UL, 0UL };
// EOF NEWLINE "ip" "quit" "names" "name" "crypto" WORD "certificate" "PIX"
// "ASA" "hostname" "access-list" "controller" "interface" "vlan" "security-level"
// "nameif" "description" "shutdown" "exit" LINE_COMMENT COLON_COMMENT
const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_2(_tokenSet_2_data_,4);
const unsigned long PIXCfgParser::_tokenSet_3_data_[] = { 3758096384UL, 0UL, 0UL, 0UL };
// "host" IPV4 "any"
const unsigned long PIXCfgParser::_tokenSet_3_data_[] = { 16UL, 0UL, 0UL, 0UL };
// NEWLINE
const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_3(_tokenSet_3_data_,4);
const unsigned long PIXCfgParser::_tokenSet_4_data_[] = { 4278452752UL, 31UL, 0UL, 0UL };
const unsigned long PIXCfgParser::_tokenSet_4_data_[] = { 2147483648UL, 3UL, 0UL, 0UL };
// "host" IPV4 "any"
const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_4(_tokenSet_4_data_,4);
const unsigned long PIXCfgParser::_tokenSet_5_data_[] = { 4228909072UL, 127UL, 0UL, 0UL };
// NEWLINE WORD INT_CONST "eq" "gt" "lt" "neq" "range" "host" IPV4 "any"
// "log" "log-input" "established" "fragments" "time-range"
const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_4(_tokenSet_4_data_,4);
const unsigned long PIXCfgParser::_tokenSet_5_data_[] = { 16UL, 11UL, 0UL, 0UL };
// NEWLINE "log" "log-input" "fragments"
const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_5(_tokenSet_5_data_,4);
const unsigned long PIXCfgParser::_tokenSet_6_data_[] = { 16UL, 3UL, 0UL, 0UL };
// NEWLINE "log" "log-input"
const unsigned long PIXCfgParser::_tokenSet_6_data_[] = { 16UL, 44UL, 0UL, 0UL };
// NEWLINE "log" "log-input" "fragments"
const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_6(_tokenSet_6_data_,4);
const unsigned long PIXCfgParser::_tokenSet_7_data_[] = { 16UL, 27UL, 0UL, 0UL };
// NEWLINE "log" "log-input" "fragments" "time-range"
const unsigned long PIXCfgParser::_tokenSet_7_data_[] = { 16UL, 12UL, 0UL, 0UL };
// NEWLINE "log" "log-input"
const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_7(_tokenSet_7_data_,4);
const unsigned long PIXCfgParser::_tokenSet_8_data_[] = { 3758096400UL, 31UL, 0UL, 0UL };
const unsigned long PIXCfgParser::_tokenSet_8_data_[] = { 16UL, 108UL, 0UL, 0UL };
// NEWLINE "log" "log-input" "fragments" "time-range"
const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_8(_tokenSet_8_data_,4);
const unsigned long PIXCfgParser::_tokenSet_9_data_[] = { 2147483664UL, 127UL, 0UL, 0UL };
// NEWLINE "host" IPV4 "any" "log" "log-input" "established" "fragments"
// "time-range"
const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_8(_tokenSet_8_data_,4);
const unsigned long PIXCfgParser::_tokenSet_9_data_[] = { 3758359056UL, 31UL, 0UL, 0UL };
const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_9(_tokenSet_9_data_,4);
const unsigned long PIXCfgParser::_tokenSet_10_data_[] = { 2148534288UL, 127UL, 0UL, 0UL };
// NEWLINE WORD INT_CONST "host" IPV4 "any" "log" "log-input" "established"
// "fragments" "time-range"
const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_9(_tokenSet_9_data_,4);
const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_10(_tokenSet_10_data_,4);
+6 -2
View File
@@ -81,11 +81,13 @@ public:
public: void shutdown();
public: void certificate();
public: void quit();
public: void names_section();
public: void crypto();
public: void unknown_command();
public: void ip_access_list_ext();
public: void interface_known_commands();
public: void community_list_command();
public: void name_entry();
public: void permit_ext();
public: void deny_ext();
public: void remark();
@@ -122,10 +124,10 @@ protected:
private:
static const char* tokenNames[];
#ifndef NO_STATIC_CONSTS
static const int NUM_TOKENS = 90;
static const int NUM_TOKENS = 92;
#else
enum {
NUM_TOKENS = 90
NUM_TOKENS = 92
};
#endif
@@ -149,6 +151,8 @@ private:
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_8;
static const unsigned long _tokenSet_9_data_[];
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_9;
static const unsigned long _tokenSet_10_data_[];
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_10;
};
#endif /*INC_PIXCfgParser_hpp_*/
+84 -82
View File
@@ -16,88 +16,90 @@ struct CUSTOM_API PIXCfgParserTokenTypes {
IP = 5,
QUIT = 6,
COMMUNITY_LIST = 7,
CRYPTO = 8,
WORD = 9,
CERTIFICATE = 10,
PIX_WORD = 11,
ASA_WORD = 12,
VERSION_WORD = 13,
NUMBER = 14,
HOSTNAME = 15,
STRING = 16,
ACCESS_LIST = 17,
INT_CONST = 18,
PERMIT = 19,
DENY = 20,
ICMP = 21,
TCP = 22,
UDP = 23,
P_EQ = 24,
P_GT = 25,
P_LT = 26,
P_NEQ = 27,
P_RANGE = 28,
HOST = 29,
IPV4 = 30,
ANY = 31,
LOG = 32,
LOG_INPUT = 33,
ESTABLISHED = 34,
FRAGMENTS = 35,
TIME_RANGE = 36,
CONTROLLER = 37,
INTRFACE = 38,
VLAN = 39,
SEC_LEVEL = 40,
NAMEIF = 41,
DESCRIPTION = 42,
REMARK = 43,
SHUTDOWN = 44,
ADDRESS = 45,
DHCP = 46,
STANDBY = 47,
SWITCHPORT = 48,
ACCESS = 49,
ACCESS_GROUP = 50,
EXIT = 51,
LINE_COMMENT = 52,
COLON_COMMENT = 53,
SECONDARY = 54,
SETROUTE = 55,
EXTENDED = 56,
STANDARD = 57,
Whitespace = 58,
HEX_CONST = 59,
NEG_INT_CONST = 60,
DIGIT = 61,
HEXDIGIT = 62,
PIPE_CHAR = 63,
NUMBER_SIGN = 64,
PERCENT = 65,
AMPERSAND = 66,
APOSTROPHE = 67,
OPENING_PAREN = 68,
CLOSING_PAREN = 69,
STAR = 70,
PLUS = 71,
COMMA = 72,
MINUS = 73,
DOT = 74,
SLASH = 75,
COLON = 76,
SEMICOLON = 77,
LESS_THAN = 78,
EQUALS = 79,
GREATER_THAN = 80,
QUESTION = 81,
COMMERCIAL_AT = 82,
OPENING_SQUARE = 83,
CLOSING_SQUARE = 84,
CARET = 85,
UNDERLINE = 86,
OPENING_BRACE = 87,
CLOSING_BRACE = 88,
TILDE = 89,
NAMES = 8,
NAME = 9,
CRYPTO = 10,
WORD = 11,
CERTIFICATE = 12,
PIX_WORD = 13,
ASA_WORD = 14,
VERSION_WORD = 15,
NUMBER = 16,
HOSTNAME = 17,
STRING = 18,
ACCESS_LIST = 19,
INT_CONST = 20,
PERMIT = 21,
DENY = 22,
ICMP = 23,
TCP = 24,
UDP = 25,
P_EQ = 26,
P_GT = 27,
P_LT = 28,
P_NEQ = 29,
P_RANGE = 30,
HOST = 31,
IPV4 = 32,
ANY = 33,
LOG = 34,
LOG_INPUT = 35,
ESTABLISHED = 36,
FRAGMENTS = 37,
TIME_RANGE = 38,
CONTROLLER = 39,
INTRFACE = 40,
VLAN = 41,
SEC_LEVEL = 42,
NAMEIF = 43,
DESCRIPTION = 44,
REMARK = 45,
SHUTDOWN = 46,
ADDRESS = 47,
DHCP = 48,
STANDBY = 49,
SWITCHPORT = 50,
ACCESS = 51,
ACCESS_GROUP = 52,
EXIT = 53,
LINE_COMMENT = 54,
COLON_COMMENT = 55,
SECONDARY = 56,
SETROUTE = 57,
EXTENDED = 58,
STANDARD = 59,
Whitespace = 60,
HEX_CONST = 61,
NEG_INT_CONST = 62,
DIGIT = 63,
HEXDIGIT = 64,
PIPE_CHAR = 65,
NUMBER_SIGN = 66,
PERCENT = 67,
AMPERSAND = 68,
APOSTROPHE = 69,
OPENING_PAREN = 70,
CLOSING_PAREN = 71,
STAR = 72,
PLUS = 73,
COMMA = 74,
MINUS = 75,
DOT = 76,
SLASH = 77,
COLON = 78,
SEMICOLON = 79,
LESS_THAN = 80,
EQUALS = 81,
GREATER_THAN = 82,
QUESTION = 83,
COMMERCIAL_AT = 84,
OPENING_SQUARE = 85,
CLOSING_SQUARE = 86,
CARET = 87,
UNDERLINE = 88,
OPENING_BRACE = 89,
CLOSING_BRACE = 90,
TILDE = 91,
NULL_TREE_LOOKAHEAD = 3
};
#ifdef __cplusplus
+84 -82
View File
@@ -4,85 +4,87 @@ NEWLINE=4
IP="ip"=5
QUIT="quit"=6
COMMUNITY_LIST="community-list"=7
CRYPTO="crypto"=8
WORD=9
CERTIFICATE="certificate"=10
PIX_WORD="PIX"=11
ASA_WORD="ASA"=12
VERSION_WORD="Version"=13
NUMBER=14
HOSTNAME="hostname"=15
STRING=16
ACCESS_LIST="access-list"=17
INT_CONST=18
PERMIT="permit"=19
DENY="deny"=20
ICMP="icmp"=21
TCP="tcp"=22
UDP="udp"=23
P_EQ="eq"=24
P_GT="gt"=25
P_LT="lt"=26
P_NEQ="neq"=27
P_RANGE="range"=28
HOST="host"=29
IPV4=30
ANY="any"=31
LOG="log"=32
LOG_INPUT="log-input"=33
ESTABLISHED="established"=34
FRAGMENTS="fragments"=35
TIME_RANGE="time-range"=36
CONTROLLER="controller"=37
INTRFACE="interface"=38
VLAN="vlan"=39
SEC_LEVEL="security-level"=40
NAMEIF="nameif"=41
DESCRIPTION="description"=42
REMARK="remark"=43
SHUTDOWN="shutdown"=44
ADDRESS="address"=45
DHCP="dhcp"=46
STANDBY="standby"=47
SWITCHPORT="switchport"=48
ACCESS="access"=49
ACCESS_GROUP="access-group"=50
EXIT="exit"=51
LINE_COMMENT=52
COLON_COMMENT=53
SECONDARY="secondary"=54
SETROUTE="setroute"=55
EXTENDED="extended"=56
STANDARD="standard"=57
Whitespace=58
HEX_CONST=59
NEG_INT_CONST=60
DIGIT=61
HEXDIGIT=62
PIPE_CHAR=63
NUMBER_SIGN=64
PERCENT=65
AMPERSAND=66
APOSTROPHE=67
OPENING_PAREN=68
CLOSING_PAREN=69
STAR=70
PLUS=71
COMMA=72
MINUS=73
DOT=74
SLASH=75
COLON=76
SEMICOLON=77
LESS_THAN=78
EQUALS=79
GREATER_THAN=80
QUESTION=81
COMMERCIAL_AT=82
OPENING_SQUARE=83
CLOSING_SQUARE=84
CARET=85
UNDERLINE=86
OPENING_BRACE=87
CLOSING_BRACE=88
TILDE=89
NAMES="names"=8
NAME="name"=9
CRYPTO="crypto"=10
WORD=11
CERTIFICATE="certificate"=12
PIX_WORD="PIX"=13
ASA_WORD="ASA"=14
VERSION_WORD="Version"=15
NUMBER=16
HOSTNAME="hostname"=17
STRING=18
ACCESS_LIST="access-list"=19
INT_CONST=20
PERMIT="permit"=21
DENY="deny"=22
ICMP="icmp"=23
TCP="tcp"=24
UDP="udp"=25
P_EQ="eq"=26
P_GT="gt"=27
P_LT="lt"=28
P_NEQ="neq"=29
P_RANGE="range"=30
HOST="host"=31
IPV4=32
ANY="any"=33
LOG="log"=34
LOG_INPUT="log-input"=35
ESTABLISHED="established"=36
FRAGMENTS="fragments"=37
TIME_RANGE="time-range"=38
CONTROLLER="controller"=39
INTRFACE="interface"=40
VLAN="vlan"=41
SEC_LEVEL="security-level"=42
NAMEIF="nameif"=43
DESCRIPTION="description"=44
REMARK="remark"=45
SHUTDOWN="shutdown"=46
ADDRESS="address"=47
DHCP="dhcp"=48
STANDBY="standby"=49
SWITCHPORT="switchport"=50
ACCESS="access"=51
ACCESS_GROUP="access-group"=52
EXIT="exit"=53
LINE_COMMENT=54
COLON_COMMENT=55
SECONDARY="secondary"=56
SETROUTE="setroute"=57
EXTENDED="extended"=58
STANDARD="standard"=59
Whitespace=60
HEX_CONST=61
NEG_INT_CONST=62
DIGIT=63
HEXDIGIT=64
PIPE_CHAR=65
NUMBER_SIGN=66
PERCENT=67
AMPERSAND=68
APOSTROPHE=69
OPENING_PAREN=70
CLOSING_PAREN=71
STAR=72
PLUS=73
COMMA=74
MINUS=75
DOT=76
SLASH=77
COLON=78
SEMICOLON=79
LESS_THAN=80
EQUALS=81
GREATER_THAN=82
QUESTION=83
COMMERCIAL_AT=84
OPENING_SQUARE=85
CLOSING_SQUARE=86
CARET=87
UNDERLINE=88
OPENING_BRACE=89
CLOSING_BRACE=90
TILDE=91
+21
View File
@@ -110,6 +110,8 @@ cfgfile :
certificate
|
quit
|
names_section
|
crypto
|
@@ -138,6 +140,21 @@ community_list_command : COMMUNITY_LIST
}
;
//****************************************************************
names_section : NAMES (name_entry)*
{
importer->addMessageToLog("Parser warning: \"names\" section detected. "
"Import of configuration that uses \"names\" "
"is not supported at this time");
}
;
name_entry : NAME
{
consumeUntil(NEWLINE);
}
;
//****************************************************************
crypto : CRYPTO
{
@@ -779,6 +796,10 @@ tokens
VERSION_WORD = "Version" ;
CRYPTO = "crypto";
NAMES = "names";
NAME = "name";
}