mirror of
https://github.com/fwbuilder/fwbuilder
synced 2025-11-06 18:52:58 +01:00
split ifconfig.g to keep linux and bsd grammars separate
This commit is contained in:
parent
d1f83311f1
commit
b9dfdd5d2c
@ -25,8 +25,11 @@
|
||||
|
||||
#include "IfconfigImporter.h"
|
||||
|
||||
#include "../parsers/IfconfigCfgLexer.hpp"
|
||||
#include "../parsers/IfconfigCfgParser.hpp"
|
||||
#include "../parsers/IfconfigLinuxCfgLexer.hpp"
|
||||
#include "../parsers/IfconfigLinuxCfgParser.hpp"
|
||||
|
||||
#include "../parsers/IfconfigBSDCfgLexer.hpp"
|
||||
#include "../parsers/IfconfigBSDCfgParser.hpp"
|
||||
|
||||
|
||||
#include <ios>
|
||||
@ -45,8 +48,9 @@ using namespace libfwbuilder;
|
||||
IfconfigImporter::IfconfigImporter(FWObject *lib,
|
||||
std::istringstream &input,
|
||||
Logger *log,
|
||||
const std::string &host_os,
|
||||
const std::string &fwname) :
|
||||
Importer(lib, "", input, log, fwname)
|
||||
Importer(lib, host_os, input, log, fwname)
|
||||
{
|
||||
}
|
||||
|
||||
@ -95,15 +99,41 @@ void IfconfigImporter::run()
|
||||
QString gen_err = QObject::tr("Error:");
|
||||
std::ostringstream parser_debug;
|
||||
|
||||
IfconfigCfgLexer lexer(input);
|
||||
IfconfigCfgParser parser(lexer);
|
||||
parser.importer = this;
|
||||
if (fwbdebug) parser.dbg = &std::cerr;
|
||||
else parser.dbg = &parser_debug;
|
||||
ANTLR_USE_NAMESPACE(antlr)CharScanner *lexer = NULL;
|
||||
ANTLR_USE_NAMESPACE(antlr)LLkParser *parser = NULL;
|
||||
|
||||
// IfconfigCfgLexer *lexer = NULL;
|
||||
// IfconfigCfgParser *parser = NULL;
|
||||
|
||||
if (platform == "linux24")
|
||||
{
|
||||
lexer = new IfconfigLinuxCfgLexer(input);
|
||||
IfconfigLinuxCfgParser* p = new IfconfigLinuxCfgParser(*lexer);
|
||||
parser = p;
|
||||
p->importer = this;
|
||||
if (fwbdebug) p->dbg = &std::cerr;
|
||||
else p->dbg = &parser_debug;
|
||||
}
|
||||
|
||||
if (platform == "openbsd" || platform == "freebsd")
|
||||
{
|
||||
lexer = new IfconfigBSDCfgLexer(input);
|
||||
IfconfigBSDCfgParser *p = new IfconfigBSDCfgParser(*lexer);
|
||||
parser = p;
|
||||
p->importer = this;
|
||||
if (fwbdebug) p->dbg = &std::cerr;
|
||||
else p->dbg = &parser_debug;
|
||||
}
|
||||
|
||||
if (lexer == NULL)
|
||||
{
|
||||
*logger << "Have no importer for ifconfig output for " << platform;
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
parser.cfgfile();
|
||||
parser->cfgfile();
|
||||
} catch(ANTLR_USE_NAMESPACE(antlr)ANTLRException &e)
|
||||
{
|
||||
err << parser_err + " " + e.toString().c_str();
|
||||
@ -120,6 +150,9 @@ void IfconfigImporter::run()
|
||||
|
||||
if (!err.isEmpty())
|
||||
*logger << err.join("\n").toUtf8().constData();
|
||||
|
||||
delete parser;
|
||||
delete lexer;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -46,6 +46,7 @@ public:
|
||||
IfconfigImporter(libfwbuilder::FWObject *lib,
|
||||
std::istringstream &input,
|
||||
libfwbuilder::Logger *log,
|
||||
const std::string &host_os,
|
||||
const std::string &fwname);
|
||||
~IfconfigImporter();
|
||||
|
||||
|
||||
@ -39,6 +39,7 @@ public:
|
||||
|
||||
bool neg;
|
||||
std::string name;
|
||||
std::string label;
|
||||
std::list<AddressSpec> as;
|
||||
std::string hwaddr;
|
||||
std::list<std::string> groups;
|
||||
@ -47,12 +48,14 @@ public:
|
||||
{
|
||||
neg = false;
|
||||
name = "";
|
||||
label = "";
|
||||
}
|
||||
|
||||
InterfaceSpec(const InterfaceSpec &other)
|
||||
{
|
||||
neg = other.neg;
|
||||
name = other.name;
|
||||
label = other.label;
|
||||
as = other.as;
|
||||
hwaddr = other.hwaddr;
|
||||
groups = other.groups;
|
||||
@ -69,7 +72,8 @@ public:
|
||||
{
|
||||
QStringList str;
|
||||
str << "InterfaceSpec";
|
||||
str << name.c_str();
|
||||
str << QString("name:%1").arg(name.c_str());
|
||||
str << QString("label:%1").arg(label.c_str());
|
||||
str << QString((neg)? "neg:true" : "neg:false");
|
||||
str << QString("hwaddr:%1").arg(hwaddr.c_str());
|
||||
|
||||
|
||||
1579
src/parsers/IfconfigBSDCfgLexer.cpp
Normal file
1579
src/parsers/IfconfigBSDCfgLexer.cpp
Normal file
@ -0,0 +1,1579 @@
|
||||
/* $ANTLR 2.7.7 (20100319): "ifconfig_bsd.g" -> "IfconfigBSDCfgLexer.cpp"$ */
|
||||
#line 43 "ifconfig_bsd.g"
|
||||
|
||||
// gets inserted before the antlr generated includes in the cpp
|
||||
// file
|
||||
|
||||
#line 8 "IfconfigBSDCfgLexer.cpp"
|
||||
#include "IfconfigBSDCfgLexer.hpp"
|
||||
#include <antlr/CharBuffer.hpp>
|
||||
#include <antlr/TokenStreamException.hpp>
|
||||
#include <antlr/TokenStreamIOException.hpp>
|
||||
#include <antlr/TokenStreamRecognitionException.hpp>
|
||||
#include <antlr/CharStreamException.hpp>
|
||||
#include <antlr/CharStreamIOException.hpp>
|
||||
#include <antlr/NoViableAltForCharException.hpp>
|
||||
|
||||
#line 49 "ifconfig_bsd.g"
|
||||
|
||||
// gets inserted after the antlr generated includes in the cpp
|
||||
// file
|
||||
#include <antlr/Token.hpp>
|
||||
#include <antlr/TokenBuffer.hpp>
|
||||
|
||||
#line 25 "IfconfigBSDCfgLexer.cpp"
|
||||
#line 1 "ifconfig_bsd.g"
|
||||
#line 27 "IfconfigBSDCfgLexer.cpp"
|
||||
IfconfigBSDCfgLexer::IfconfigBSDCfgLexer(ANTLR_USE_NAMESPACE(std)istream& in)
|
||||
: ANTLR_USE_NAMESPACE(antlr)CharScanner(new ANTLR_USE_NAMESPACE(antlr)CharBuffer(in),true)
|
||||
{
|
||||
initLiterals();
|
||||
}
|
||||
|
||||
IfconfigBSDCfgLexer::IfconfigBSDCfgLexer(ANTLR_USE_NAMESPACE(antlr)InputBuffer& ib)
|
||||
: ANTLR_USE_NAMESPACE(antlr)CharScanner(ib,true)
|
||||
{
|
||||
initLiterals();
|
||||
}
|
||||
|
||||
IfconfigBSDCfgLexer::IfconfigBSDCfgLexer(const ANTLR_USE_NAMESPACE(antlr)LexerSharedInputState& state)
|
||||
: ANTLR_USE_NAMESPACE(antlr)CharScanner(state,true)
|
||||
{
|
||||
initLiterals();
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::initLiterals()
|
||||
{
|
||||
literals["priority"] = 7;
|
||||
literals["broadcast"] = 21;
|
||||
literals["Scope"] = 35;
|
||||
literals["scopeid"] = 26;
|
||||
literals["Host"] = 30;
|
||||
literals["UP"] = 39;
|
||||
literals["groups"] = 27;
|
||||
literals["HWaddr"] = 49;
|
||||
literals["encap"] = 37;
|
||||
literals["NOARP"] = 43;
|
||||
literals["Mask"] = 34;
|
||||
literals["netmask"] = 19;
|
||||
literals["RUNNING"] = 44;
|
||||
literals["inet"] = 17;
|
||||
literals["media"] = 8;
|
||||
literals["BROADCAST"] = 40;
|
||||
literals["P-t-P"] = 33;
|
||||
literals["prefixlen"] = 25;
|
||||
literals["Loopback"] = 38;
|
||||
literals["Interrupt"] = 48;
|
||||
literals["Bcast"] = 32;
|
||||
literals["mtu"] = 36;
|
||||
literals["inet6"] = 22;
|
||||
literals["status"] = 9;
|
||||
literals["LOOPBACK"] = 42;
|
||||
literals["Link"] = 28;
|
||||
literals["TX"] = 46;
|
||||
literals["addr"] = 31;
|
||||
literals["RX"] = 45;
|
||||
literals["Global"] = 29;
|
||||
literals["POINTOPOINT"] = 41;
|
||||
literals["flags"] = 12;
|
||||
literals["lladdr"] = 50;
|
||||
literals["collisions"] = 47;
|
||||
}
|
||||
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken IfconfigBSDCfgLexer::nextToken()
|
||||
{
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken theRetToken;
|
||||
for (;;) {
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken theRetToken;
|
||||
int _ttype = ANTLR_USE_NAMESPACE(antlr)Token::INVALID_TYPE;
|
||||
resetText();
|
||||
try { // for lexical and char stream error handling
|
||||
switch ( LA(1)) {
|
||||
case 0x23 /* '#' */ :
|
||||
{
|
||||
mLINE_COMMENT(true);
|
||||
theRetToken=_returnToken;
|
||||
break;
|
||||
}
|
||||
case 0xa /* '\n' */ :
|
||||
case 0xd /* '\r' */ :
|
||||
{
|
||||
mNEWLINE(true);
|
||||
theRetToken=_returnToken;
|
||||
break;
|
||||
}
|
||||
case 0x30 /* '0' */ :
|
||||
case 0x31 /* '1' */ :
|
||||
case 0x32 /* '2' */ :
|
||||
case 0x33 /* '3' */ :
|
||||
case 0x34 /* '4' */ :
|
||||
case 0x35 /* '5' */ :
|
||||
case 0x36 /* '6' */ :
|
||||
case 0x37 /* '7' */ :
|
||||
case 0x38 /* '8' */ :
|
||||
case 0x39 /* '9' */ :
|
||||
case 0x3a /* ':' */ :
|
||||
case 0x41 /* 'A' */ :
|
||||
case 0x42 /* 'B' */ :
|
||||
case 0x43 /* 'C' */ :
|
||||
case 0x44 /* 'D' */ :
|
||||
case 0x45 /* 'E' */ :
|
||||
case 0x46 /* 'F' */ :
|
||||
case 0x47 /* 'G' */ :
|
||||
case 0x48 /* 'H' */ :
|
||||
case 0x49 /* 'I' */ :
|
||||
case 0x4a /* 'J' */ :
|
||||
case 0x4b /* 'K' */ :
|
||||
case 0x4c /* 'L' */ :
|
||||
case 0x4d /* 'M' */ :
|
||||
case 0x4e /* 'N' */ :
|
||||
case 0x4f /* 'O' */ :
|
||||
case 0x50 /* 'P' */ :
|
||||
case 0x51 /* 'Q' */ :
|
||||
case 0x52 /* 'R' */ :
|
||||
case 0x53 /* 'S' */ :
|
||||
case 0x54 /* 'T' */ :
|
||||
case 0x55 /* 'U' */ :
|
||||
case 0x56 /* 'V' */ :
|
||||
case 0x57 /* 'W' */ :
|
||||
case 0x58 /* 'X' */ :
|
||||
case 0x59 /* 'Y' */ :
|
||||
case 0x5a /* 'Z' */ :
|
||||
case 0x61 /* 'a' */ :
|
||||
case 0x62 /* 'b' */ :
|
||||
case 0x63 /* 'c' */ :
|
||||
case 0x64 /* 'd' */ :
|
||||
case 0x65 /* 'e' */ :
|
||||
case 0x66 /* 'f' */ :
|
||||
case 0x67 /* 'g' */ :
|
||||
case 0x68 /* 'h' */ :
|
||||
case 0x69 /* 'i' */ :
|
||||
case 0x6a /* 'j' */ :
|
||||
case 0x6b /* 'k' */ :
|
||||
case 0x6c /* 'l' */ :
|
||||
case 0x6d /* 'm' */ :
|
||||
case 0x6e /* 'n' */ :
|
||||
case 0x6f /* 'o' */ :
|
||||
case 0x70 /* 'p' */ :
|
||||
case 0x71 /* 'q' */ :
|
||||
case 0x72 /* 'r' */ :
|
||||
case 0x73 /* 's' */ :
|
||||
case 0x74 /* 't' */ :
|
||||
case 0x75 /* 'u' */ :
|
||||
case 0x76 /* 'v' */ :
|
||||
case 0x77 /* 'w' */ :
|
||||
case 0x78 /* 'x' */ :
|
||||
case 0x79 /* 'y' */ :
|
||||
case 0x7a /* 'z' */ :
|
||||
{
|
||||
mNUMBER_ADDRESS_OR_WORD(true);
|
||||
theRetToken=_returnToken;
|
||||
break;
|
||||
}
|
||||
case 0x25 /* '%' */ :
|
||||
{
|
||||
mPERCENT(true);
|
||||
theRetToken=_returnToken;
|
||||
break;
|
||||
}
|
||||
case 0x26 /* '&' */ :
|
||||
{
|
||||
mAMPERSAND(true);
|
||||
theRetToken=_returnToken;
|
||||
break;
|
||||
}
|
||||
case 0x2a /* '*' */ :
|
||||
{
|
||||
mSTAR(true);
|
||||
theRetToken=_returnToken;
|
||||
break;
|
||||
}
|
||||
case 0x2d /* '-' */ :
|
||||
{
|
||||
mMINUS(true);
|
||||
theRetToken=_returnToken;
|
||||
break;
|
||||
}
|
||||
case 0x2e /* '.' */ :
|
||||
{
|
||||
mDOT(true);
|
||||
theRetToken=_returnToken;
|
||||
break;
|
||||
}
|
||||
case 0x2f /* '/' */ :
|
||||
{
|
||||
mSLASH(true);
|
||||
theRetToken=_returnToken;
|
||||
break;
|
||||
}
|
||||
case 0x3d /* '=' */ :
|
||||
{
|
||||
mEQUAL(true);
|
||||
theRetToken=_returnToken;
|
||||
break;
|
||||
}
|
||||
case 0x3f /* '?' */ :
|
||||
{
|
||||
mQUESTION(true);
|
||||
theRetToken=_returnToken;
|
||||
break;
|
||||
}
|
||||
case 0x28 /* '(' */ :
|
||||
{
|
||||
mOPENING_PAREN(true);
|
||||
theRetToken=_returnToken;
|
||||
break;
|
||||
}
|
||||
case 0x29 /* ')' */ :
|
||||
{
|
||||
mCLOSING_PAREN(true);
|
||||
theRetToken=_returnToken;
|
||||
break;
|
||||
}
|
||||
case 0x5b /* '[' */ :
|
||||
{
|
||||
mOPENING_SQUARE(true);
|
||||
theRetToken=_returnToken;
|
||||
break;
|
||||
}
|
||||
case 0x5d /* ']' */ :
|
||||
{
|
||||
mCLOSING_SQUARE(true);
|
||||
theRetToken=_returnToken;
|
||||
break;
|
||||
}
|
||||
case 0x7b /* '{' */ :
|
||||
{
|
||||
mOPENING_BRACE(true);
|
||||
theRetToken=_returnToken;
|
||||
break;
|
||||
}
|
||||
case 0x7d /* '}' */ :
|
||||
{
|
||||
mCLOSING_BRACE(true);
|
||||
theRetToken=_returnToken;
|
||||
break;
|
||||
}
|
||||
case 0x3c /* '<' */ :
|
||||
{
|
||||
mLESS_THAN(true);
|
||||
theRetToken=_returnToken;
|
||||
break;
|
||||
}
|
||||
case 0x3e /* '>' */ :
|
||||
{
|
||||
mGREATER_THAN(true);
|
||||
theRetToken=_returnToken;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
if ((_tokenSet_0.member(LA(1)))) {
|
||||
mWhitespace(true);
|
||||
theRetToken=_returnToken;
|
||||
}
|
||||
else {
|
||||
if (LA(1)==EOF_CHAR)
|
||||
{
|
||||
uponEOF();
|
||||
_returnToken = makeToken(ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE);
|
||||
}
|
||||
else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
}
|
||||
}
|
||||
if ( !_returnToken )
|
||||
goto tryAgain; // found SKIP token
|
||||
|
||||
_ttype = _returnToken->getType();
|
||||
_ttype = testLiteralsTable(_ttype);
|
||||
_returnToken->setType(_ttype);
|
||||
return _returnToken;
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& e) {
|
||||
throw ANTLR_USE_NAMESPACE(antlr)TokenStreamRecognitionException(e);
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)CharStreamIOException& csie) {
|
||||
throw ANTLR_USE_NAMESPACE(antlr)TokenStreamIOException(csie.io);
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)CharStreamException& cse) {
|
||||
throw ANTLR_USE_NAMESPACE(antlr)TokenStreamException(cse.getMessage());
|
||||
}
|
||||
tryAgain:;
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mLINE_COMMENT(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = LINE_COMMENT;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
match("#");
|
||||
{ // ( ... )*
|
||||
for (;;) {
|
||||
if ((_tokenSet_1.member(LA(1)))) {
|
||||
{
|
||||
match(_tokenSet_1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
goto _loop18;
|
||||
}
|
||||
|
||||
}
|
||||
_loop18:;
|
||||
} // ( ... )*
|
||||
mNEWLINE(false);
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mNEWLINE(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = NEWLINE;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
{
|
||||
if ((LA(1) == 0xd /* '\r' */ ) && (LA(2) == 0xa /* '\n' */ )) {
|
||||
match("\r\n");
|
||||
}
|
||||
else if ((LA(1) == 0xd /* '\r' */ ) && (true)) {
|
||||
match('\r' /* charlit */ );
|
||||
}
|
||||
else if ((LA(1) == 0xa /* '\n' */ )) {
|
||||
match('\n' /* charlit */ );
|
||||
}
|
||||
else {
|
||||
throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
|
||||
}
|
||||
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 388 "ifconfig_bsd.g"
|
||||
newline();
|
||||
#line 357 "IfconfigBSDCfgLexer.cpp"
|
||||
}
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mWhitespace(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = Whitespace;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
{
|
||||
switch ( LA(1)) {
|
||||
case 0x3 /* '\3' */ :
|
||||
case 0x4 /* '\4' */ :
|
||||
case 0x5 /* '\5' */ :
|
||||
case 0x6 /* '\6' */ :
|
||||
case 0x7 /* '\7' */ :
|
||||
case 0x8 /* '\10' */ :
|
||||
{
|
||||
matchRange('\3','\10');
|
||||
break;
|
||||
}
|
||||
case 0x9 /* '\t' */ :
|
||||
{
|
||||
match('\t' /* charlit */ );
|
||||
break;
|
||||
}
|
||||
case 0xb /* '\13' */ :
|
||||
{
|
||||
match('\13' /* charlit */ );
|
||||
break;
|
||||
}
|
||||
case 0xc /* '\14' */ :
|
||||
{
|
||||
match('\14' /* charlit */ );
|
||||
break;
|
||||
}
|
||||
case 0xe /* '\16' */ :
|
||||
case 0xf /* '\17' */ :
|
||||
case 0x10 /* '\20' */ :
|
||||
case 0x11 /* '\21' */ :
|
||||
case 0x12 /* '\22' */ :
|
||||
case 0x13 /* '\23' */ :
|
||||
case 0x14 /* '\24' */ :
|
||||
case 0x15 /* '\25' */ :
|
||||
case 0x16 /* '\26' */ :
|
||||
case 0x17 /* '\27' */ :
|
||||
case 0x18 /* '\30' */ :
|
||||
case 0x19 /* '\31' */ :
|
||||
case 0x1a /* '\32' */ :
|
||||
case 0x1b /* '\33' */ :
|
||||
case 0x1c /* '\34' */ :
|
||||
case 0x1d /* '\35' */ :
|
||||
case 0x1e /* '\36' */ :
|
||||
case 0x1f /* '\37' */ :
|
||||
{
|
||||
matchRange('\16','\37');
|
||||
break;
|
||||
}
|
||||
case 0x20 /* ' ' */ :
|
||||
{
|
||||
match(' ' /* charlit */ );
|
||||
break;
|
||||
}
|
||||
default:
|
||||
if (((LA(1) >= 0x7f && LA(1) <= 0xff))) {
|
||||
matchRange('\177',static_cast<unsigned char>('\377'));
|
||||
}
|
||||
else {
|
||||
throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 294 "ifconfig_bsd.g"
|
||||
_ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP;
|
||||
#line 438 "IfconfigBSDCfgLexer.cpp"
|
||||
}
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mINT_CONST(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = INT_CONST;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mHEX_CONST(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = HEX_CONST;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mNUMBER(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = NUMBER;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mNEG_INT_CONST(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = NEG_INT_CONST;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mCOLON(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = COLON;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mHEX_DIGIT(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = HEX_DIGIT;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
{
|
||||
switch ( LA(1)) {
|
||||
case 0x30 /* '0' */ :
|
||||
case 0x31 /* '1' */ :
|
||||
case 0x32 /* '2' */ :
|
||||
case 0x33 /* '3' */ :
|
||||
case 0x34 /* '4' */ :
|
||||
case 0x35 /* '5' */ :
|
||||
case 0x36 /* '6' */ :
|
||||
case 0x37 /* '7' */ :
|
||||
case 0x38 /* '8' */ :
|
||||
case 0x39 /* '9' */ :
|
||||
{
|
||||
matchRange('0','9');
|
||||
break;
|
||||
}
|
||||
case 0x61 /* 'a' */ :
|
||||
case 0x62 /* 'b' */ :
|
||||
case 0x63 /* 'c' */ :
|
||||
case 0x64 /* 'd' */ :
|
||||
case 0x65 /* 'e' */ :
|
||||
case 0x66 /* 'f' */ :
|
||||
{
|
||||
matchRange('a','f');
|
||||
break;
|
||||
}
|
||||
case 0x41 /* 'A' */ :
|
||||
case 0x42 /* 'B' */ :
|
||||
case 0x43 /* 'C' */ :
|
||||
case 0x44 /* 'D' */ :
|
||||
case 0x45 /* 'E' */ :
|
||||
case 0x46 /* 'F' */ :
|
||||
{
|
||||
matchRange('A','F');
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mDIGIT(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = DIGIT;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
matchRange('0','9');
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mNUM_3DIGIT(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = NUM_3DIGIT;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
{
|
||||
matchRange('0','9');
|
||||
}
|
||||
{
|
||||
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
|
||||
{
|
||||
matchRange('0','9');
|
||||
}
|
||||
{
|
||||
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
|
||||
matchRange('0','9');
|
||||
}
|
||||
else {
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else {
|
||||
}
|
||||
|
||||
}
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mNUM_HEX_4DIGIT(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = NUM_HEX_4DIGIT;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
mHEX_DIGIT(false);
|
||||
{
|
||||
if ((_tokenSet_2.member(LA(1)))) {
|
||||
{
|
||||
mHEX_DIGIT(false);
|
||||
}
|
||||
{
|
||||
if ((_tokenSet_2.member(LA(1)))) {
|
||||
{
|
||||
mHEX_DIGIT(false);
|
||||
}
|
||||
{
|
||||
if ((_tokenSet_2.member(LA(1)))) {
|
||||
mHEX_DIGIT(false);
|
||||
}
|
||||
else {
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else {
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else {
|
||||
}
|
||||
|
||||
}
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mMAC_ADDRESS(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = MAC_ADDRESS;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = NUMBER_ADDRESS_OR_WORD;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
bool synPredMatched43 = false;
|
||||
if ((((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ )) && (_tokenSet_3.member(LA(2))) && (_tokenSet_3.member(LA(3))))) {
|
||||
int _m43 = mark();
|
||||
synPredMatched43 = true;
|
||||
inputState->guessing++;
|
||||
try {
|
||||
{
|
||||
mNUM_3DIGIT(false);
|
||||
match('.' /* charlit */ );
|
||||
mNUM_3DIGIT(false);
|
||||
match('.' /* charlit */ );
|
||||
}
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
|
||||
synPredMatched43 = false;
|
||||
}
|
||||
rewind(_m43);
|
||||
inputState->guessing--;
|
||||
}
|
||||
if ( synPredMatched43 ) {
|
||||
{
|
||||
mNUM_3DIGIT(false);
|
||||
match('.' /* charlit */ );
|
||||
mNUM_3DIGIT(false);
|
||||
match('.' /* charlit */ );
|
||||
mNUM_3DIGIT(false);
|
||||
match('.' /* charlit */ );
|
||||
mNUM_3DIGIT(false);
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 336 "ifconfig_bsd.g"
|
||||
_ttype = IPV4;
|
||||
#line 708 "IfconfigBSDCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else {
|
||||
bool synPredMatched47 = false;
|
||||
if (((_tokenSet_2.member(LA(1))) && (_tokenSet_4.member(LA(2))) && (_tokenSet_4.member(LA(3))))) {
|
||||
int _m47 = mark();
|
||||
synPredMatched47 = true;
|
||||
inputState->guessing++;
|
||||
try {
|
||||
{
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
match(':' /* charlit */ );
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
match(':' /* charlit */ );
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
match(':' /* charlit */ );
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
match(':' /* charlit */ );
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
match(':' /* charlit */ );
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
{
|
||||
match(_tokenSet_5);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
|
||||
synPredMatched47 = false;
|
||||
}
|
||||
rewind(_m47);
|
||||
inputState->guessing--;
|
||||
}
|
||||
if ( synPredMatched47 ) {
|
||||
{
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
match(':' /* charlit */ );
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
match(':' /* charlit */ );
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
match(':' /* charlit */ );
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
match(':' /* charlit */ );
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
match(':' /* charlit */ );
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 348 "ifconfig_bsd.g"
|
||||
_ttype = MAC_ADDRESS;
|
||||
#line 758 "IfconfigBSDCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else {
|
||||
bool synPredMatched50 = false;
|
||||
if (((_tokenSet_2.member(LA(1))) && (_tokenSet_4.member(LA(2))) && (_tokenSet_4.member(LA(3))))) {
|
||||
int _m50 = mark();
|
||||
synPredMatched50 = true;
|
||||
inputState->guessing++;
|
||||
try {
|
||||
{
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
match(':' /* charlit */ );
|
||||
}
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
|
||||
synPredMatched50 = false;
|
||||
}
|
||||
rewind(_m50);
|
||||
inputState->guessing--;
|
||||
}
|
||||
if ( synPredMatched50 ) {
|
||||
{
|
||||
bool synPredMatched55 = false;
|
||||
if (((_tokenSet_2.member(LA(1))) && (_tokenSet_4.member(LA(2))) && (_tokenSet_4.member(LA(3))))) {
|
||||
int _m55 = mark();
|
||||
synPredMatched55 = true;
|
||||
inputState->guessing++;
|
||||
try {
|
||||
{
|
||||
{ // ( ... )+
|
||||
int _cnt54=0;
|
||||
for (;;) {
|
||||
if ((_tokenSet_2.member(LA(1)))) {
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
match(':' /* charlit */ );
|
||||
}
|
||||
else {
|
||||
if ( _cnt54>=1 ) { goto _loop54; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
}
|
||||
|
||||
_cnt54++;
|
||||
}
|
||||
_loop54:;
|
||||
} // ( ... )+
|
||||
match(':' /* charlit */ );
|
||||
}
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
|
||||
synPredMatched55 = false;
|
||||
}
|
||||
rewind(_m55);
|
||||
inputState->guessing--;
|
||||
}
|
||||
if ( synPredMatched55 ) {
|
||||
{
|
||||
{ // ( ... )+
|
||||
int _cnt58=0;
|
||||
for (;;) {
|
||||
if ((_tokenSet_2.member(LA(1)))) {
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
match(':' /* charlit */ );
|
||||
}
|
||||
else {
|
||||
if ( _cnt58>=1 ) { goto _loop58; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
}
|
||||
|
||||
_cnt58++;
|
||||
}
|
||||
_loop58:;
|
||||
} // ( ... )+
|
||||
match(':' /* charlit */ );
|
||||
{
|
||||
if ((_tokenSet_2.member(LA(1)))) {
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
{ // ( ... )*
|
||||
for (;;) {
|
||||
if ((LA(1) == 0x3a /* ':' */ )) {
|
||||
match(':' /* charlit */ );
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
}
|
||||
else {
|
||||
goto _loop61;
|
||||
}
|
||||
|
||||
}
|
||||
_loop61:;
|
||||
} // ( ... )*
|
||||
}
|
||||
else {
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 357 "ifconfig_bsd.g"
|
||||
_ttype = IPV6;
|
||||
#line 855 "IfconfigBSDCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else if ((_tokenSet_2.member(LA(1))) && (_tokenSet_4.member(LA(2))) && (_tokenSet_4.member(LA(3)))) {
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
{ // ( ... )+
|
||||
int _cnt63=0;
|
||||
for (;;) {
|
||||
if ((LA(1) == 0x3a /* ':' */ )) {
|
||||
match(':' /* charlit */ );
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
}
|
||||
else {
|
||||
if ( _cnt63>=1 ) { goto _loop63; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
}
|
||||
|
||||
_cnt63++;
|
||||
}
|
||||
_loop63:;
|
||||
} // ( ... )+
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 360 "ifconfig_bsd.g"
|
||||
_ttype = IPV6;
|
||||
#line 878 "IfconfigBSDCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else {
|
||||
throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
|
||||
}
|
||||
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 362 "ifconfig_bsd.g"
|
||||
_ttype = IPV6;
|
||||
#line 889 "IfconfigBSDCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else {
|
||||
bool synPredMatched65 = false;
|
||||
if (((LA(1) == 0x3a /* ':' */ ) && (LA(2) == 0x3a /* ':' */ ) && (_tokenSet_2.member(LA(3))))) {
|
||||
int _m65 = mark();
|
||||
synPredMatched65 = true;
|
||||
inputState->guessing++;
|
||||
try {
|
||||
{
|
||||
match(':' /* charlit */ );
|
||||
match(':' /* charlit */ );
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
}
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
|
||||
synPredMatched65 = false;
|
||||
}
|
||||
rewind(_m65);
|
||||
inputState->guessing--;
|
||||
}
|
||||
if ( synPredMatched65 ) {
|
||||
match(':' /* charlit */ );
|
||||
match(':' /* charlit */ );
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
{ // ( ... )*
|
||||
for (;;) {
|
||||
if ((LA(1) == 0x3a /* ':' */ )) {
|
||||
match(':' /* charlit */ );
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
}
|
||||
else {
|
||||
goto _loop67;
|
||||
}
|
||||
|
||||
}
|
||||
_loop67:;
|
||||
} // ( ... )*
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 365 "ifconfig_bsd.g"
|
||||
_ttype = IPV6;
|
||||
#line 931 "IfconfigBSDCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else {
|
||||
bool synPredMatched73 = false;
|
||||
if ((((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ )) && (_tokenSet_3.member(LA(2))) && (_tokenSet_3.member(LA(3))))) {
|
||||
int _m73 = mark();
|
||||
synPredMatched73 = true;
|
||||
inputState->guessing++;
|
||||
try {
|
||||
{
|
||||
{ // ( ... )+
|
||||
int _cnt70=0;
|
||||
for (;;) {
|
||||
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
|
||||
mDIGIT(false);
|
||||
}
|
||||
else {
|
||||
if ( _cnt70>=1 ) { goto _loop70; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
}
|
||||
|
||||
_cnt70++;
|
||||
}
|
||||
_loop70:;
|
||||
} // ( ... )+
|
||||
match('.' /* charlit */ );
|
||||
{ // ( ... )+
|
||||
int _cnt72=0;
|
||||
for (;;) {
|
||||
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
|
||||
mDIGIT(false);
|
||||
}
|
||||
else {
|
||||
if ( _cnt72>=1 ) { goto _loop72; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
}
|
||||
|
||||
_cnt72++;
|
||||
}
|
||||
_loop72:;
|
||||
} // ( ... )+
|
||||
}
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
|
||||
synPredMatched73 = false;
|
||||
}
|
||||
rewind(_m73);
|
||||
inputState->guessing--;
|
||||
}
|
||||
if ( synPredMatched73 ) {
|
||||
{
|
||||
{ // ( ... )+
|
||||
int _cnt76=0;
|
||||
for (;;) {
|
||||
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
|
||||
mDIGIT(false);
|
||||
}
|
||||
else {
|
||||
if ( _cnt76>=1 ) { goto _loop76; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
}
|
||||
|
||||
_cnt76++;
|
||||
}
|
||||
_loop76:;
|
||||
} // ( ... )+
|
||||
match('.' /* charlit */ );
|
||||
{ // ( ... )+
|
||||
int _cnt78=0;
|
||||
for (;;) {
|
||||
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
|
||||
mDIGIT(false);
|
||||
}
|
||||
else {
|
||||
if ( _cnt78>=1 ) { goto _loop78; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
}
|
||||
|
||||
_cnt78++;
|
||||
}
|
||||
_loop78:;
|
||||
} // ( ... )+
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 372 "ifconfig_bsd.g"
|
||||
_ttype = NUMBER;
|
||||
#line 1014 "IfconfigBSDCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else if ((LA(1) == 0x3a /* ':' */ ) && (LA(2) == 0x3a /* ':' */ ) && (true)) {
|
||||
match(':' /* charlit */ );
|
||||
match(':' /* charlit */ );
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 367 "ifconfig_bsd.g"
|
||||
_ttype = IPV6;
|
||||
#line 1023 "IfconfigBSDCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else if ((LA(1) == 0x30 /* '0' */ ) && (LA(2) == 0x58 /* 'X' */ || LA(2) == 0x78 /* 'x' */ )) {
|
||||
match('0' /* charlit */ );
|
||||
{
|
||||
switch ( LA(1)) {
|
||||
case 0x78 /* 'x' */ :
|
||||
{
|
||||
match('x' /* charlit */ );
|
||||
break;
|
||||
}
|
||||
case 0x58 /* 'X' */ :
|
||||
{
|
||||
match('X' /* charlit */ );
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
|
||||
}
|
||||
}
|
||||
}
|
||||
mHEX_DIGIT(false);
|
||||
{ // ( ... )*
|
||||
for (;;) {
|
||||
if ((_tokenSet_2.member(LA(1)))) {
|
||||
mHEX_DIGIT(false);
|
||||
}
|
||||
else {
|
||||
goto _loop83;
|
||||
}
|
||||
|
||||
}
|
||||
_loop83:;
|
||||
} // ( ... )*
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 376 "ifconfig_bsd.g"
|
||||
_ttype = HEX_CONST;
|
||||
#line 1062 "IfconfigBSDCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else if ((LA(1) == 0x3a /* ':' */ ) && (true)) {
|
||||
match(':' /* charlit */ );
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 369 "ifconfig_bsd.g"
|
||||
_ttype = COLON;
|
||||
#line 1070 "IfconfigBSDCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ )) && (true) && (true)) {
|
||||
{ // ( ... )+
|
||||
int _cnt80=0;
|
||||
for (;;) {
|
||||
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
|
||||
mDIGIT(false);
|
||||
}
|
||||
else {
|
||||
if ( _cnt80>=1 ) { goto _loop80; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
}
|
||||
|
||||
_cnt80++;
|
||||
}
|
||||
_loop80:;
|
||||
} // ( ... )+
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 374 "ifconfig_bsd.g"
|
||||
_ttype = INT_CONST;
|
||||
#line 1091 "IfconfigBSDCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else if ((_tokenSet_6.member(LA(1))) && (true) && (true)) {
|
||||
{
|
||||
switch ( LA(1)) {
|
||||
case 0x61 /* 'a' */ :
|
||||
case 0x62 /* 'b' */ :
|
||||
case 0x63 /* 'c' */ :
|
||||
case 0x64 /* 'd' */ :
|
||||
case 0x65 /* 'e' */ :
|
||||
case 0x66 /* 'f' */ :
|
||||
case 0x67 /* 'g' */ :
|
||||
case 0x68 /* 'h' */ :
|
||||
case 0x69 /* 'i' */ :
|
||||
case 0x6a /* 'j' */ :
|
||||
case 0x6b /* 'k' */ :
|
||||
case 0x6c /* 'l' */ :
|
||||
case 0x6d /* 'm' */ :
|
||||
case 0x6e /* 'n' */ :
|
||||
case 0x6f /* 'o' */ :
|
||||
case 0x70 /* 'p' */ :
|
||||
case 0x71 /* 'q' */ :
|
||||
case 0x72 /* 'r' */ :
|
||||
case 0x73 /* 's' */ :
|
||||
case 0x74 /* 't' */ :
|
||||
case 0x75 /* 'u' */ :
|
||||
case 0x76 /* 'v' */ :
|
||||
case 0x77 /* 'w' */ :
|
||||
case 0x78 /* 'x' */ :
|
||||
case 0x79 /* 'y' */ :
|
||||
case 0x7a /* 'z' */ :
|
||||
{
|
||||
matchRange('a','z');
|
||||
break;
|
||||
}
|
||||
case 0x41 /* 'A' */ :
|
||||
case 0x42 /* 'B' */ :
|
||||
case 0x43 /* 'C' */ :
|
||||
case 0x44 /* 'D' */ :
|
||||
case 0x45 /* 'E' */ :
|
||||
case 0x46 /* 'F' */ :
|
||||
case 0x47 /* 'G' */ :
|
||||
case 0x48 /* 'H' */ :
|
||||
case 0x49 /* 'I' */ :
|
||||
case 0x4a /* 'J' */ :
|
||||
case 0x4b /* 'K' */ :
|
||||
case 0x4c /* 'L' */ :
|
||||
case 0x4d /* 'M' */ :
|
||||
case 0x4e /* 'N' */ :
|
||||
case 0x4f /* 'O' */ :
|
||||
case 0x50 /* 'P' */ :
|
||||
case 0x51 /* 'Q' */ :
|
||||
case 0x52 /* 'R' */ :
|
||||
case 0x53 /* 'S' */ :
|
||||
case 0x54 /* 'T' */ :
|
||||
case 0x55 /* 'U' */ :
|
||||
case 0x56 /* 'V' */ :
|
||||
case 0x57 /* 'W' */ :
|
||||
case 0x58 /* 'X' */ :
|
||||
case 0x59 /* 'Y' */ :
|
||||
case 0x5a /* 'Z' */ :
|
||||
{
|
||||
matchRange('A','Z');
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
|
||||
}
|
||||
}
|
||||
}
|
||||
{ // ( ... )*
|
||||
for (;;) {
|
||||
switch ( LA(1)) {
|
||||
case 0x22 /* '\"' */ :
|
||||
{
|
||||
match('\"' /* charlit */ );
|
||||
break;
|
||||
}
|
||||
case 0x24 /* '$' */ :
|
||||
{
|
||||
match('$' /* charlit */ );
|
||||
break;
|
||||
}
|
||||
case 0x25 /* '%' */ :
|
||||
{
|
||||
match('%' /* charlit */ );
|
||||
break;
|
||||
}
|
||||
case 0x26 /* '&' */ :
|
||||
{
|
||||
match('&' /* charlit */ );
|
||||
break;
|
||||
}
|
||||
case 0x2d /* '-' */ :
|
||||
{
|
||||
match('-' /* charlit */ );
|
||||
break;
|
||||
}
|
||||
case 0x30 /* '0' */ :
|
||||
case 0x31 /* '1' */ :
|
||||
case 0x32 /* '2' */ :
|
||||
case 0x33 /* '3' */ :
|
||||
case 0x34 /* '4' */ :
|
||||
case 0x35 /* '5' */ :
|
||||
case 0x36 /* '6' */ :
|
||||
case 0x37 /* '7' */ :
|
||||
case 0x38 /* '8' */ :
|
||||
case 0x39 /* '9' */ :
|
||||
{
|
||||
matchRange('0','9');
|
||||
break;
|
||||
}
|
||||
case 0x3b /* ';' */ :
|
||||
{
|
||||
match(';' /* charlit */ );
|
||||
break;
|
||||
}
|
||||
case 0x3f /* '?' */ :
|
||||
{
|
||||
match('?' /* charlit */ );
|
||||
break;
|
||||
}
|
||||
case 0x40 /* '@' */ :
|
||||
{
|
||||
match('@' /* charlit */ );
|
||||
break;
|
||||
}
|
||||
case 0x41 /* 'A' */ :
|
||||
case 0x42 /* 'B' */ :
|
||||
case 0x43 /* 'C' */ :
|
||||
case 0x44 /* 'D' */ :
|
||||
case 0x45 /* 'E' */ :
|
||||
case 0x46 /* 'F' */ :
|
||||
case 0x47 /* 'G' */ :
|
||||
case 0x48 /* 'H' */ :
|
||||
case 0x49 /* 'I' */ :
|
||||
case 0x4a /* 'J' */ :
|
||||
case 0x4b /* 'K' */ :
|
||||
case 0x4c /* 'L' */ :
|
||||
case 0x4d /* 'M' */ :
|
||||
case 0x4e /* 'N' */ :
|
||||
case 0x4f /* 'O' */ :
|
||||
case 0x50 /* 'P' */ :
|
||||
case 0x51 /* 'Q' */ :
|
||||
case 0x52 /* 'R' */ :
|
||||
case 0x53 /* 'S' */ :
|
||||
case 0x54 /* 'T' */ :
|
||||
case 0x55 /* 'U' */ :
|
||||
case 0x56 /* 'V' */ :
|
||||
case 0x57 /* 'W' */ :
|
||||
case 0x58 /* 'X' */ :
|
||||
case 0x59 /* 'Y' */ :
|
||||
case 0x5a /* 'Z' */ :
|
||||
{
|
||||
matchRange('A','Z');
|
||||
break;
|
||||
}
|
||||
case 0x5c /* '\\' */ :
|
||||
{
|
||||
match('\\' /* charlit */ );
|
||||
break;
|
||||
}
|
||||
case 0x5e /* '^' */ :
|
||||
{
|
||||
match('^' /* charlit */ );
|
||||
break;
|
||||
}
|
||||
case 0x5f /* '_' */ :
|
||||
{
|
||||
match('_' /* charlit */ );
|
||||
break;
|
||||
}
|
||||
case 0x60 /* '`' */ :
|
||||
{
|
||||
match('`' /* charlit */ );
|
||||
break;
|
||||
}
|
||||
case 0x61 /* 'a' */ :
|
||||
case 0x62 /* 'b' */ :
|
||||
case 0x63 /* 'c' */ :
|
||||
case 0x64 /* 'd' */ :
|
||||
case 0x65 /* 'e' */ :
|
||||
case 0x66 /* 'f' */ :
|
||||
case 0x67 /* 'g' */ :
|
||||
case 0x68 /* 'h' */ :
|
||||
case 0x69 /* 'i' */ :
|
||||
case 0x6a /* 'j' */ :
|
||||
case 0x6b /* 'k' */ :
|
||||
case 0x6c /* 'l' */ :
|
||||
case 0x6d /* 'm' */ :
|
||||
case 0x6e /* 'n' */ :
|
||||
case 0x6f /* 'o' */ :
|
||||
case 0x70 /* 'p' */ :
|
||||
case 0x71 /* 'q' */ :
|
||||
case 0x72 /* 'r' */ :
|
||||
case 0x73 /* 's' */ :
|
||||
case 0x74 /* 't' */ :
|
||||
case 0x75 /* 'u' */ :
|
||||
case 0x76 /* 'v' */ :
|
||||
case 0x77 /* 'w' */ :
|
||||
case 0x78 /* 'x' */ :
|
||||
case 0x79 /* 'y' */ :
|
||||
case 0x7a /* 'z' */ :
|
||||
{
|
||||
matchRange('a','z');
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
goto _loop86;
|
||||
}
|
||||
}
|
||||
}
|
||||
_loop86:;
|
||||
} // ( ... )*
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 384 "ifconfig_bsd.g"
|
||||
_ttype = WORD;
|
||||
#line 1311 "IfconfigBSDCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else {
|
||||
throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
|
||||
}
|
||||
}}}}
|
||||
_ttype = testLiteralsTable(_ttype);
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mPERCENT(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = PERCENT;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
match('%' /* charlit */ );
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mAMPERSAND(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = AMPERSAND;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
match('&' /* charlit */ );
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mSTAR(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = STAR;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
match('*' /* charlit */ );
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mMINUS(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = MINUS;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
match('-' /* charlit */ );
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mDOT(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = DOT;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
match('.' /* charlit */ );
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mSLASH(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = SLASH;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
match('/' /* charlit */ );
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mEQUAL(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = EQUAL;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
match('=' /* charlit */ );
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mQUESTION(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = QUESTION;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
match('?' /* charlit */ );
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mOPENING_PAREN(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = OPENING_PAREN;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
match('(' /* charlit */ );
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mCLOSING_PAREN(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = CLOSING_PAREN;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
match(')' /* charlit */ );
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mOPENING_SQUARE(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = OPENING_SQUARE;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
match('[' /* charlit */ );
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mCLOSING_SQUARE(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = CLOSING_SQUARE;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
match(']' /* charlit */ );
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mOPENING_BRACE(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = OPENING_BRACE;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
match('{' /* charlit */ );
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mCLOSING_BRACE(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = CLOSING_BRACE;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
match('}' /* charlit */ );
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mLESS_THAN(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = LESS_THAN;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
match('<' /* charlit */ );
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgLexer::mGREATER_THAN(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = GREATER_THAN;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
match('>' /* charlit */ );
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
_token->setText(text.substr(_begin, text.length()-_begin));
|
||||
}
|
||||
_returnToken = _token;
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
|
||||
const unsigned long IfconfigBSDCfgLexer::_tokenSet_0_data_[] = { 4294958072UL, 1UL, 0UL, 2147483648UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
// 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
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigBSDCfgLexer::_tokenSet_0(_tokenSet_0_data_,16);
|
||||
const unsigned long IfconfigBSDCfgLexer::_tokenSet_1_data_[] = { 4294958072UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
// 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
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigBSDCfgLexer::_tokenSet_1(_tokenSet_1_data_,16);
|
||||
const unsigned long IfconfigBSDCfgLexer::_tokenSet_2_data_[] = { 0UL, 67043328UL, 126UL, 126UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
// 0 1 2 3 4 5 6 7 8 9 A B C D E F
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigBSDCfgLexer::_tokenSet_2(_tokenSet_2_data_,10);
|
||||
const unsigned long IfconfigBSDCfgLexer::_tokenSet_3_data_[] = { 0UL, 67059712UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
// . 0 1 2 3 4 5 6 7 8 9
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigBSDCfgLexer::_tokenSet_3(_tokenSet_3_data_,10);
|
||||
const unsigned long IfconfigBSDCfgLexer::_tokenSet_4_data_[] = { 0UL, 134152192UL, 126UL, 126UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
// 0 1 2 3 4 5 6 7 8 9 : A B C D E F
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigBSDCfgLexer::_tokenSet_4(_tokenSet_4_data_,10);
|
||||
const unsigned long IfconfigBSDCfgLexer::_tokenSet_5_data_[] = { 4294967288UL, 4227858431UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
// 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
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigBSDCfgLexer::_tokenSet_5(_tokenSet_5_data_,16);
|
||||
const unsigned long IfconfigBSDCfgLexer::_tokenSet_6_data_[] = { 0UL, 0UL, 134217726UL, 134217726UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
// A B C D E F G H
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigBSDCfgLexer::_tokenSet_6(_tokenSet_6_data_,10);
|
||||
|
||||
@ -1,21 +1,21 @@
|
||||
#ifndef INC_IfconfigCfgLexer_hpp_
|
||||
#define INC_IfconfigCfgLexer_hpp_
|
||||
#ifndef INC_IfconfigBSDCfgLexer_hpp_
|
||||
#define INC_IfconfigBSDCfgLexer_hpp_
|
||||
|
||||
#line 25 "ifconfig.g"
|
||||
#line 25 "ifconfig_bsd.g"
|
||||
|
||||
// gets inserted before antlr generated includes in the header
|
||||
// file
|
||||
#include "IfconfigImporter.h"
|
||||
|
||||
#line 11 "IfconfigCfgLexer.hpp"
|
||||
#line 11 "IfconfigBSDCfgLexer.hpp"
|
||||
#include <antlr/config.hpp>
|
||||
/* $ANTLR 2.7.7 (20090306): "ifconfig.g" -> "IfconfigCfgLexer.hpp"$ */
|
||||
/* $ANTLR 2.7.7 (20100319): "ifconfig_bsd.g" -> "IfconfigBSDCfgLexer.hpp"$ */
|
||||
#include <antlr/CommonToken.hpp>
|
||||
#include <antlr/InputBuffer.hpp>
|
||||
#include <antlr/BitSet.hpp>
|
||||
#include "IfconfigCfgParserTokenTypes.hpp"
|
||||
#include "IfconfigBSDCfgParserTokenTypes.hpp"
|
||||
#include <antlr/CharScanner.hpp>
|
||||
#line 32 "ifconfig.g"
|
||||
#line 32 "ifconfig_bsd.g"
|
||||
|
||||
// gets inserted after antlr generated includes in the header file
|
||||
// outside any generated namespace specifications
|
||||
@ -25,17 +25,17 @@
|
||||
|
||||
class IfconfigImporter;
|
||||
|
||||
#line 29 "IfconfigCfgLexer.hpp"
|
||||
#line 57 "ifconfig.g"
|
||||
#line 29 "IfconfigBSDCfgLexer.hpp"
|
||||
#line 57 "ifconfig_bsd.g"
|
||||
|
||||
// gets inserted after generated namespace specifications in the
|
||||
// header file. But outside the generated class.
|
||||
|
||||
#line 35 "IfconfigCfgLexer.hpp"
|
||||
class CUSTOM_API IfconfigCfgLexer : public ANTLR_USE_NAMESPACE(antlr)CharScanner, public IfconfigCfgParserTokenTypes
|
||||
#line 35 "IfconfigBSDCfgLexer.hpp"
|
||||
class CUSTOM_API IfconfigBSDCfgLexer : public ANTLR_USE_NAMESPACE(antlr)CharScanner, public IfconfigBSDCfgParserTokenTypes
|
||||
{
|
||||
#line 1 "ifconfig.g"
|
||||
#line 39 "IfconfigCfgLexer.hpp"
|
||||
#line 1 "ifconfig_bsd.g"
|
||||
#line 39 "IfconfigBSDCfgLexer.hpp"
|
||||
private:
|
||||
void initLiterals();
|
||||
public:
|
||||
@ -44,9 +44,9 @@ public:
|
||||
return true;
|
||||
}
|
||||
public:
|
||||
IfconfigCfgLexer(ANTLR_USE_NAMESPACE(std)istream& in);
|
||||
IfconfigCfgLexer(ANTLR_USE_NAMESPACE(antlr)InputBuffer& ib);
|
||||
IfconfigCfgLexer(const ANTLR_USE_NAMESPACE(antlr)LexerSharedInputState& state);
|
||||
IfconfigBSDCfgLexer(ANTLR_USE_NAMESPACE(std)istream& in);
|
||||
IfconfigBSDCfgLexer(ANTLR_USE_NAMESPACE(antlr)InputBuffer& ib);
|
||||
IfconfigBSDCfgLexer(const ANTLR_USE_NAMESPACE(antlr)LexerSharedInputState& state);
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken nextToken();
|
||||
public: void mLINE_COMMENT(bool _createToken);
|
||||
public: void mNEWLINE(bool _createToken);
|
||||
@ -96,4 +96,4 @@ private:
|
||||
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_6;
|
||||
};
|
||||
|
||||
#endif /*INC_IfconfigCfgLexer_hpp_*/
|
||||
#endif /*INC_IfconfigBSDCfgLexer_hpp_*/
|
||||
420
src/parsers/IfconfigBSDCfgParser.cpp
Normal file
420
src/parsers/IfconfigBSDCfgParser.cpp
Normal file
@ -0,0 +1,420 @@
|
||||
/* $ANTLR 2.7.7 (20100319): "ifconfig_bsd.g" -> "IfconfigBSDCfgParser.cpp"$ */
|
||||
#line 43 "ifconfig_bsd.g"
|
||||
|
||||
// gets inserted before the antlr generated includes in the cpp
|
||||
// file
|
||||
|
||||
#line 8 "IfconfigBSDCfgParser.cpp"
|
||||
#include "IfconfigBSDCfgParser.hpp"
|
||||
#include <antlr/NoViableAltException.hpp>
|
||||
#include <antlr/SemanticException.hpp>
|
||||
#include <antlr/ASTFactory.hpp>
|
||||
#line 49 "ifconfig_bsd.g"
|
||||
|
||||
// gets inserted after the antlr generated includes in the cpp
|
||||
// file
|
||||
#include <antlr/Token.hpp>
|
||||
#include <antlr/TokenBuffer.hpp>
|
||||
|
||||
#line 20 "IfconfigBSDCfgParser.cpp"
|
||||
#line 1 "ifconfig_bsd.g"
|
||||
#line 22 "IfconfigBSDCfgParser.cpp"
|
||||
IfconfigBSDCfgParser::IfconfigBSDCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf, int k)
|
||||
: ANTLR_USE_NAMESPACE(antlr)LLkParser(tokenBuf,k)
|
||||
{
|
||||
}
|
||||
|
||||
IfconfigBSDCfgParser::IfconfigBSDCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf)
|
||||
: ANTLR_USE_NAMESPACE(antlr)LLkParser(tokenBuf,2)
|
||||
{
|
||||
}
|
||||
|
||||
IfconfigBSDCfgParser::IfconfigBSDCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer, int k)
|
||||
: ANTLR_USE_NAMESPACE(antlr)LLkParser(lexer,k)
|
||||
{
|
||||
}
|
||||
|
||||
IfconfigBSDCfgParser::IfconfigBSDCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer)
|
||||
: ANTLR_USE_NAMESPACE(antlr)LLkParser(lexer,2)
|
||||
{
|
||||
}
|
||||
|
||||
IfconfigBSDCfgParser::IfconfigBSDCfgParser(const ANTLR_USE_NAMESPACE(antlr)ParserSharedInputState& state)
|
||||
: ANTLR_USE_NAMESPACE(antlr)LLkParser(state,2)
|
||||
{
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgParser::cfgfile() {
|
||||
Tracer traceInOut(this, "cfgfile");
|
||||
|
||||
try { // for error handling
|
||||
{ // ( ... )*
|
||||
for (;;) {
|
||||
switch ( LA(1)) {
|
||||
case LINE_COMMENT:
|
||||
{
|
||||
comment();
|
||||
break;
|
||||
}
|
||||
case LLADDR:
|
||||
{
|
||||
hwaddr_line();
|
||||
break;
|
||||
}
|
||||
case INET:
|
||||
{
|
||||
inet_address();
|
||||
break;
|
||||
}
|
||||
case INET6:
|
||||
{
|
||||
inet6_address();
|
||||
break;
|
||||
}
|
||||
case GROUPS:
|
||||
{
|
||||
groups();
|
||||
break;
|
||||
}
|
||||
case NEWLINE:
|
||||
{
|
||||
match(NEWLINE);
|
||||
break;
|
||||
}
|
||||
case DOUBLE_NEWLINE:
|
||||
{
|
||||
match(DOUBLE_NEWLINE);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
if ((LA(1) == WORD) && (LA(2) == COLON)) {
|
||||
interface_line();
|
||||
}
|
||||
else if (((LA(1) >= PRIORITY && LA(1) <= WORD)) && (_tokenSet_0.member(LA(2)))) {
|
||||
unknown_line();
|
||||
}
|
||||
else {
|
||||
goto _loop3;
|
||||
}
|
||||
}
|
||||
}
|
||||
_loop3:;
|
||||
} // ( ... )*
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
|
||||
reportError(ex);
|
||||
recover(ex,_tokenSet_1);
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgParser::comment() {
|
||||
Tracer traceInOut(this, "comment");
|
||||
|
||||
try { // for error handling
|
||||
match(LINE_COMMENT);
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
|
||||
reportError(ex);
|
||||
recover(ex,_tokenSet_0);
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgParser::interface_line() {
|
||||
Tracer traceInOut(this, "interface_line");
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken in = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
#line 165 "ifconfig_bsd.g"
|
||||
InterfaceSpec is;
|
||||
#line 128 "IfconfigBSDCfgParser.cpp"
|
||||
|
||||
try { // for error handling
|
||||
in = LT(1);
|
||||
match(WORD);
|
||||
match(COLON);
|
||||
match(FLAGS);
|
||||
match(EQUAL);
|
||||
match(INT_CONST);
|
||||
#line 168 "ifconfig_bsd.g"
|
||||
|
||||
// interface name and status
|
||||
is.name = in->getText();
|
||||
importer->newInterface(is);
|
||||
consumeUntil(NEWLINE);
|
||||
|
||||
#line 144 "IfconfigBSDCfgParser.cpp"
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
|
||||
reportError(ex);
|
||||
recover(ex,_tokenSet_0);
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgParser::hwaddr_line() {
|
||||
Tracer traceInOut(this, "hwaddr_line");
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken addr = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
|
||||
try { // for error handling
|
||||
match(LLADDR);
|
||||
addr = LT(1);
|
||||
match(MAC_ADDRESS);
|
||||
#line 181 "ifconfig_bsd.g"
|
||||
|
||||
importer->HwAddressForCurrentInterface(addr->getText());
|
||||
|
||||
#line 164 "IfconfigBSDCfgParser.cpp"
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
|
||||
reportError(ex);
|
||||
recover(ex,_tokenSet_0);
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgParser::inet_address() {
|
||||
Tracer traceInOut(this, "inet_address");
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken addr = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken netm = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken bcast = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
#line 190 "ifconfig_bsd.g"
|
||||
AddressSpec as;
|
||||
#line 179 "IfconfigBSDCfgParser.cpp"
|
||||
|
||||
try { // for error handling
|
||||
match(INET);
|
||||
addr = LT(1);
|
||||
match(IPV4);
|
||||
match(NETMASK);
|
||||
netm = LT(1);
|
||||
match(HEX_CONST);
|
||||
match(BROADCAST);
|
||||
bcast = LT(1);
|
||||
match(IPV4);
|
||||
#line 193 "ifconfig_bsd.g"
|
||||
|
||||
as.at = AddressSpec::INTERFACE_CONFIGURATION;
|
||||
as.address = addr->getText();
|
||||
as.netmask = netm->getText();
|
||||
as.broadcast = bcast->getText();
|
||||
importer->inetConfigurationForCurrentInterface(as);
|
||||
|
||||
#line 199 "IfconfigBSDCfgParser.cpp"
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
|
||||
reportError(ex);
|
||||
recover(ex,_tokenSet_0);
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgParser::inet6_address() {
|
||||
Tracer traceInOut(this, "inet6_address");
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken addr = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken netm = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
#line 205 "ifconfig_bsd.g"
|
||||
AddressSpec as;
|
||||
#line 213 "IfconfigBSDCfgParser.cpp"
|
||||
|
||||
try { // for error handling
|
||||
match(INET6);
|
||||
addr = LT(1);
|
||||
match(IPV6);
|
||||
match(PERCENT);
|
||||
match(WORD);
|
||||
match(PREFIXLEN);
|
||||
netm = LT(1);
|
||||
match(INT_CONST);
|
||||
match(SCOPEID);
|
||||
match(HEX_CONST);
|
||||
#line 208 "ifconfig_bsd.g"
|
||||
|
||||
as.at = AddressSpec::INTERFACE_CONFIGURATION;
|
||||
as.address = addr->getText();
|
||||
as.netmask = netm->getText();
|
||||
importer->inet6ConfigurationForCurrentInterface(as);
|
||||
|
||||
#line 233 "IfconfigBSDCfgParser.cpp"
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
|
||||
reportError(ex);
|
||||
recover(ex,_tokenSet_0);
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgParser::groups() {
|
||||
Tracer traceInOut(this, "groups");
|
||||
|
||||
try { // for error handling
|
||||
match(GROUPS);
|
||||
match(COLON);
|
||||
groups_list();
|
||||
match(NEWLINE);
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
|
||||
reportError(ex);
|
||||
recover(ex,_tokenSet_0);
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgParser::unknown_line() {
|
||||
Tracer traceInOut(this, "unknown_line");
|
||||
|
||||
try { // for error handling
|
||||
{
|
||||
switch ( LA(1)) {
|
||||
case PRIORITY:
|
||||
{
|
||||
match(PRIORITY);
|
||||
break;
|
||||
}
|
||||
case MEDIA:
|
||||
{
|
||||
match(MEDIA);
|
||||
break;
|
||||
}
|
||||
case STATUS:
|
||||
{
|
||||
match(STATUS);
|
||||
break;
|
||||
}
|
||||
case WORD:
|
||||
{
|
||||
match(WORD);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
|
||||
}
|
||||
}
|
||||
}
|
||||
#line 152 "ifconfig_bsd.g"
|
||||
|
||||
consumeUntil(NEWLINE);
|
||||
|
||||
#line 292 "IfconfigBSDCfgParser.cpp"
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
|
||||
reportError(ex);
|
||||
recover(ex,_tokenSet_0);
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgParser::groups_list() {
|
||||
Tracer traceInOut(this, "groups_list");
|
||||
|
||||
try { // for error handling
|
||||
match(WORD);
|
||||
#line 224 "ifconfig_bsd.g"
|
||||
importer->addGroupToCurrentInterface(LT(0)->getText());
|
||||
#line 307 "IfconfigBSDCfgParser.cpp"
|
||||
{ // ( ... )*
|
||||
for (;;) {
|
||||
if ((LA(1) == WORD)) {
|
||||
match(WORD);
|
||||
#line 226 "ifconfig_bsd.g"
|
||||
importer->addGroupToCurrentInterface(LT(0)->getText());
|
||||
#line 314 "IfconfigBSDCfgParser.cpp"
|
||||
}
|
||||
else {
|
||||
goto _loop14;
|
||||
}
|
||||
|
||||
}
|
||||
_loop14:;
|
||||
} // ( ... )*
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
|
||||
reportError(ex);
|
||||
recover(ex,_tokenSet_2);
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigBSDCfgParser::initializeASTFactory( ANTLR_USE_NAMESPACE(antlr)ASTFactory& )
|
||||
{
|
||||
}
|
||||
const char* IfconfigBSDCfgParser::tokenNames[] = {
|
||||
"<0>",
|
||||
"EOF",
|
||||
"<2>",
|
||||
"NULL_TREE_LOOKAHEAD",
|
||||
"NEWLINE",
|
||||
"DOUBLE_NEWLINE",
|
||||
"LINE_COMMENT",
|
||||
"\"priority\"",
|
||||
"\"media\"",
|
||||
"\"status\"",
|
||||
"WORD",
|
||||
"COLON",
|
||||
"\"flags\"",
|
||||
"EQUAL",
|
||||
"INT_CONST",
|
||||
"LLADDR",
|
||||
"MAC_ADDRESS",
|
||||
"\"inet\"",
|
||||
"IPV4",
|
||||
"\"netmask\"",
|
||||
"HEX_CONST",
|
||||
"\"broadcast\"",
|
||||
"\"inet6\"",
|
||||
"IPV6",
|
||||
"PERCENT",
|
||||
"\"prefixlen\"",
|
||||
"\"scopeid\"",
|
||||
"\"groups\"",
|
||||
"\"Link\"",
|
||||
"\"Global\"",
|
||||
"\"Host\"",
|
||||
"\"addr\"",
|
||||
"\"Bcast\"",
|
||||
"\"P-t-P\"",
|
||||
"\"Mask\"",
|
||||
"\"Scope\"",
|
||||
"\"mtu\"",
|
||||
"\"encap\"",
|
||||
"\"Loopback\"",
|
||||
"\"UP\"",
|
||||
"\"BROADCAST\"",
|
||||
"\"POINTOPOINT\"",
|
||||
"\"LOOPBACK\"",
|
||||
"\"NOARP\"",
|
||||
"\"RUNNING\"",
|
||||
"\"RX\"",
|
||||
"\"TX\"",
|
||||
"\"collisions\"",
|
||||
"\"Interrupt\"",
|
||||
"\"HWaddr\"",
|
||||
"\"lladdr\"",
|
||||
"Whitespace",
|
||||
"NUMBER",
|
||||
"NEG_INT_CONST",
|
||||
"HEX_DIGIT",
|
||||
"DIGIT",
|
||||
"NUM_3DIGIT",
|
||||
"NUM_HEX_4DIGIT",
|
||||
"NUMBER_ADDRESS_OR_WORD",
|
||||
"AMPERSAND",
|
||||
"STAR",
|
||||
"MINUS",
|
||||
"DOT",
|
||||
"SLASH",
|
||||
"QUESTION",
|
||||
"OPENING_PAREN",
|
||||
"CLOSING_PAREN",
|
||||
"OPENING_SQUARE",
|
||||
"CLOSING_SQUARE",
|
||||
"OPENING_BRACE",
|
||||
"CLOSING_BRACE",
|
||||
"LESS_THAN",
|
||||
"GREATER_THAN",
|
||||
0
|
||||
};
|
||||
|
||||
const unsigned long IfconfigBSDCfgParser::_tokenSet_0_data_[] = { 138577906UL, 0UL, 0UL, 0UL };
|
||||
// EOF NEWLINE DOUBLE_NEWLINE LINE_COMMENT "priority" "media" "status"
|
||||
// WORD LLADDR "inet" "inet6" "groups"
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigBSDCfgParser::_tokenSet_0(_tokenSet_0_data_,4);
|
||||
const unsigned long IfconfigBSDCfgParser::_tokenSet_1_data_[] = { 2UL, 0UL, 0UL, 0UL };
|
||||
// EOF
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigBSDCfgParser::_tokenSet_1(_tokenSet_1_data_,4);
|
||||
const unsigned long IfconfigBSDCfgParser::_tokenSet_2_data_[] = { 16UL, 0UL, 0UL, 0UL };
|
||||
// NEWLINE
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigBSDCfgParser::_tokenSet_2(_tokenSet_2_data_,4);
|
||||
|
||||
|
||||
127
src/parsers/IfconfigBSDCfgParser.hpp
Normal file
127
src/parsers/IfconfigBSDCfgParser.hpp
Normal file
@ -0,0 +1,127 @@
|
||||
#ifndef INC_IfconfigBSDCfgParser_hpp_
|
||||
#define INC_IfconfigBSDCfgParser_hpp_
|
||||
|
||||
#line 25 "ifconfig_bsd.g"
|
||||
|
||||
// gets inserted before antlr generated includes in the header
|
||||
// file
|
||||
#include "IfconfigImporter.h"
|
||||
|
||||
#line 11 "IfconfigBSDCfgParser.hpp"
|
||||
#include <antlr/config.hpp>
|
||||
/* $ANTLR 2.7.7 (20100319): "ifconfig_bsd.g" -> "IfconfigBSDCfgParser.hpp"$ */
|
||||
#include <antlr/TokenStream.hpp>
|
||||
#include <antlr/TokenBuffer.hpp>
|
||||
#include "IfconfigBSDCfgParserTokenTypes.hpp"
|
||||
#include <antlr/LLkParser.hpp>
|
||||
|
||||
#line 32 "ifconfig_bsd.g"
|
||||
|
||||
// gets inserted after antlr generated includes in the header file
|
||||
// outside any generated namespace specifications
|
||||
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
|
||||
class IfconfigImporter;
|
||||
|
||||
#line 29 "IfconfigBSDCfgParser.hpp"
|
||||
#line 57 "ifconfig_bsd.g"
|
||||
|
||||
// gets inserted after generated namespace specifications in the
|
||||
// header file. But outside the generated class.
|
||||
|
||||
#line 35 "IfconfigBSDCfgParser.hpp"
|
||||
class CUSTOM_API IfconfigBSDCfgParser : public ANTLR_USE_NAMESPACE(antlr)LLkParser, public IfconfigBSDCfgParserTokenTypes
|
||||
{
|
||||
#line 82 "ifconfig_bsd.g"
|
||||
|
||||
// additional methods and members
|
||||
|
||||
public:
|
||||
|
||||
std::ostream *dbg;
|
||||
IfconfigImporter *importer;
|
||||
|
||||
/// Parser error-reporting function can be overridden in subclass
|
||||
virtual void reportError(const ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex)
|
||||
{
|
||||
importer->addMessageToLog("Parser error: " + ex.toString());
|
||||
std::cerr << ex.toString() << std::endl;
|
||||
}
|
||||
|
||||
/// Parser error-reporting function can be overridden in subclass
|
||||
virtual void reportError(const ANTLR_USE_NAMESPACE(std)string& s)
|
||||
{
|
||||
importer->addMessageToLog("Parser error: " + s);
|
||||
std::cerr << s << std::endl;
|
||||
}
|
||||
|
||||
/// Parser warning-reporting function can be overridden in subclass
|
||||
virtual void reportWarning(const ANTLR_USE_NAMESPACE(std)string& s)
|
||||
{
|
||||
importer->addMessageToLog("Parser warning: " + s);
|
||||
std::cerr << s << std::endl;
|
||||
}
|
||||
|
||||
#line 39 "IfconfigBSDCfgParser.hpp"
|
||||
public:
|
||||
void initializeASTFactory( ANTLR_USE_NAMESPACE(antlr)ASTFactory& factory );
|
||||
protected:
|
||||
IfconfigBSDCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf, int k);
|
||||
public:
|
||||
IfconfigBSDCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf);
|
||||
protected:
|
||||
IfconfigBSDCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer, int k);
|
||||
public:
|
||||
IfconfigBSDCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer);
|
||||
IfconfigBSDCfgParser(const ANTLR_USE_NAMESPACE(antlr)ParserSharedInputState& state);
|
||||
int getNumTokens() const
|
||||
{
|
||||
return IfconfigBSDCfgParser::NUM_TOKENS;
|
||||
}
|
||||
const char* getTokenName( int type ) const
|
||||
{
|
||||
if( type > getNumTokens() ) return 0;
|
||||
return IfconfigBSDCfgParser::tokenNames[type];
|
||||
}
|
||||
const char* const* getTokenNames() const
|
||||
{
|
||||
return IfconfigBSDCfgParser::tokenNames;
|
||||
}
|
||||
public: void cfgfile();
|
||||
public: void comment();
|
||||
public: void interface_line();
|
||||
public: void hwaddr_line();
|
||||
public: void inet_address();
|
||||
public: void inet6_address();
|
||||
public: void groups();
|
||||
public: void unknown_line();
|
||||
public: void groups_list();
|
||||
public:
|
||||
ANTLR_USE_NAMESPACE(antlr)RefAST getAST()
|
||||
{
|
||||
return returnAST;
|
||||
}
|
||||
|
||||
protected:
|
||||
ANTLR_USE_NAMESPACE(antlr)RefAST returnAST;
|
||||
private:
|
||||
static const char* tokenNames[];
|
||||
#ifndef NO_STATIC_CONSTS
|
||||
static const int NUM_TOKENS = 73;
|
||||
#else
|
||||
enum {
|
||||
NUM_TOKENS = 73
|
||||
};
|
||||
#endif
|
||||
|
||||
static const unsigned long _tokenSet_0_data_[];
|
||||
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_0;
|
||||
static const unsigned long _tokenSet_1_data_[];
|
||||
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_1;
|
||||
static const unsigned long _tokenSet_2_data_[];
|
||||
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_2;
|
||||
};
|
||||
|
||||
#endif /*INC_IfconfigBSDCfgParser_hpp_*/
|
||||
89
src/parsers/IfconfigBSDCfgParserTokenTypes.hpp
Normal file
89
src/parsers/IfconfigBSDCfgParserTokenTypes.hpp
Normal file
@ -0,0 +1,89 @@
|
||||
#ifndef INC_IfconfigBSDCfgParserTokenTypes_hpp_
|
||||
#define INC_IfconfigBSDCfgParserTokenTypes_hpp_
|
||||
|
||||
/* $ANTLR 2.7.7 (20100319): "ifconfig_bsd.g" -> "IfconfigBSDCfgParserTokenTypes.hpp"$ */
|
||||
|
||||
#ifndef CUSTOM_API
|
||||
# define CUSTOM_API
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
struct CUSTOM_API IfconfigBSDCfgParserTokenTypes {
|
||||
#endif
|
||||
enum {
|
||||
EOF_ = 1,
|
||||
NEWLINE = 4,
|
||||
DOUBLE_NEWLINE = 5,
|
||||
LINE_COMMENT = 6,
|
||||
PRIORITY = 7,
|
||||
MEDIA = 8,
|
||||
STATUS = 9,
|
||||
WORD = 10,
|
||||
COLON = 11,
|
||||
FLAGS = 12,
|
||||
EQUAL = 13,
|
||||
INT_CONST = 14,
|
||||
LLADDR = 15,
|
||||
MAC_ADDRESS = 16,
|
||||
INET = 17,
|
||||
IPV4 = 18,
|
||||
NETMASK = 19,
|
||||
HEX_CONST = 20,
|
||||
BROADCAST = 21,
|
||||
INET6 = 22,
|
||||
IPV6 = 23,
|
||||
PERCENT = 24,
|
||||
PREFIXLEN = 25,
|
||||
SCOPEID = 26,
|
||||
GROUPS = 27,
|
||||
LINK = 28,
|
||||
GLOBAL = 29,
|
||||
HOST = 30,
|
||||
ADDR = 31,
|
||||
BCAST = 32,
|
||||
P_T_P = 33,
|
||||
MASK = 34,
|
||||
SCOPE = 35,
|
||||
MTU = 36,
|
||||
ENCAP = 37,
|
||||
LOOPBACK = 38,
|
||||
UP = 39,
|
||||
UPPER_BROADCAST = 40,
|
||||
UPPER_POINTOPOINT = 41,
|
||||
UPPER_LOOPBACK = 42,
|
||||
UPPER_NOARP = 43,
|
||||
UPPER_RUNNING = 44,
|
||||
RX = 45,
|
||||
TX = 46,
|
||||
COLLISIONS = 47,
|
||||
INTERRUPT = 48,
|
||||
HWADDR = 49,
|
||||
LLADR = 50,
|
||||
Whitespace = 51,
|
||||
NUMBER = 52,
|
||||
NEG_INT_CONST = 53,
|
||||
HEX_DIGIT = 54,
|
||||
DIGIT = 55,
|
||||
NUM_3DIGIT = 56,
|
||||
NUM_HEX_4DIGIT = 57,
|
||||
NUMBER_ADDRESS_OR_WORD = 58,
|
||||
AMPERSAND = 59,
|
||||
STAR = 60,
|
||||
MINUS = 61,
|
||||
DOT = 62,
|
||||
SLASH = 63,
|
||||
QUESTION = 64,
|
||||
OPENING_PAREN = 65,
|
||||
CLOSING_PAREN = 66,
|
||||
OPENING_SQUARE = 67,
|
||||
CLOSING_SQUARE = 68,
|
||||
OPENING_BRACE = 69,
|
||||
CLOSING_BRACE = 70,
|
||||
LESS_THAN = 71,
|
||||
GREATER_THAN = 72,
|
||||
NULL_TREE_LOOKAHEAD = 3
|
||||
};
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /*INC_IfconfigBSDCfgParserTokenTypes_hpp_*/
|
||||
71
src/parsers/IfconfigBSDCfgParserTokenTypes.txt
Normal file
71
src/parsers/IfconfigBSDCfgParserTokenTypes.txt
Normal file
@ -0,0 +1,71 @@
|
||||
// $ANTLR 2.7.7 (20100319): ifconfig_bsd.g -> IfconfigBSDCfgParserTokenTypes.txt$
|
||||
IfconfigBSDCfgParser // output token vocab name
|
||||
NEWLINE=4
|
||||
DOUBLE_NEWLINE=5
|
||||
LINE_COMMENT=6
|
||||
PRIORITY="priority"=7
|
||||
MEDIA="media"=8
|
||||
STATUS="status"=9
|
||||
WORD=10
|
||||
COLON=11
|
||||
FLAGS="flags"=12
|
||||
EQUAL=13
|
||||
INT_CONST=14
|
||||
LLADDR=15
|
||||
MAC_ADDRESS=16
|
||||
INET="inet"=17
|
||||
IPV4=18
|
||||
NETMASK="netmask"=19
|
||||
HEX_CONST=20
|
||||
BROADCAST="broadcast"=21
|
||||
INET6="inet6"=22
|
||||
IPV6=23
|
||||
PERCENT=24
|
||||
PREFIXLEN="prefixlen"=25
|
||||
SCOPEID="scopeid"=26
|
||||
GROUPS="groups"=27
|
||||
LINK="Link"=28
|
||||
GLOBAL="Global"=29
|
||||
HOST="Host"=30
|
||||
ADDR="addr"=31
|
||||
BCAST="Bcast"=32
|
||||
P_T_P="P-t-P"=33
|
||||
MASK="Mask"=34
|
||||
SCOPE="Scope"=35
|
||||
MTU="mtu"=36
|
||||
ENCAP="encap"=37
|
||||
LOOPBACK="Loopback"=38
|
||||
UP="UP"=39
|
||||
UPPER_BROADCAST="BROADCAST"=40
|
||||
UPPER_POINTOPOINT="POINTOPOINT"=41
|
||||
UPPER_LOOPBACK="LOOPBACK"=42
|
||||
UPPER_NOARP="NOARP"=43
|
||||
UPPER_RUNNING="RUNNING"=44
|
||||
RX="RX"=45
|
||||
TX="TX"=46
|
||||
COLLISIONS="collisions"=47
|
||||
INTERRUPT="Interrupt"=48
|
||||
HWADDR="HWaddr"=49
|
||||
LLADR="lladdr"=50
|
||||
Whitespace=51
|
||||
NUMBER=52
|
||||
NEG_INT_CONST=53
|
||||
HEX_DIGIT=54
|
||||
DIGIT=55
|
||||
NUM_3DIGIT=56
|
||||
NUM_HEX_4DIGIT=57
|
||||
NUMBER_ADDRESS_OR_WORD=58
|
||||
AMPERSAND=59
|
||||
STAR=60
|
||||
MINUS=61
|
||||
DOT=62
|
||||
SLASH=63
|
||||
QUESTION=64
|
||||
OPENING_PAREN=65
|
||||
CLOSING_PAREN=66
|
||||
OPENING_SQUARE=67
|
||||
CLOSING_SQUARE=68
|
||||
OPENING_BRACE=69
|
||||
CLOSING_BRACE=70
|
||||
LESS_THAN=71
|
||||
GREATER_THAN=72
|
||||
@ -1,88 +0,0 @@
|
||||
#ifndef INC_IfconfigCfgParserTokenTypes_hpp_
|
||||
#define INC_IfconfigCfgParserTokenTypes_hpp_
|
||||
|
||||
/* $ANTLR 2.7.7 (20090306): "ifconfig.g" -> "IfconfigCfgParserTokenTypes.hpp"$ */
|
||||
|
||||
#ifndef CUSTOM_API
|
||||
# define CUSTOM_API
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
struct CUSTOM_API IfconfigCfgParserTokenTypes {
|
||||
#endif
|
||||
enum {
|
||||
EOF_ = 1,
|
||||
NEWLINE = 4,
|
||||
DOUBLE_NEWLINE = 5,
|
||||
LINE_COMMENT = 6,
|
||||
PRIORITY = 7,
|
||||
MEDIA = 8,
|
||||
STATUS = 9,
|
||||
WORD = 10,
|
||||
UP = 11,
|
||||
UPPER_BROADCAST = 12,
|
||||
UPPER_POINTOPOINT = 13,
|
||||
UPPER_LOOPBACK = 14,
|
||||
UPPER_NOARP = 15,
|
||||
UPPER_RUNNING = 16,
|
||||
LOOPBACK = 17,
|
||||
COLLISIONS = 18,
|
||||
COLON = 19,
|
||||
RX = 20,
|
||||
TX = 21,
|
||||
FLAGS = 22,
|
||||
EQUAL = 23,
|
||||
INT_CONST = 24,
|
||||
LINK = 25,
|
||||
ENCAP = 26,
|
||||
LLADDR = 27,
|
||||
MAC_ADDRESS = 28,
|
||||
HWADDR = 29,
|
||||
INET = 30,
|
||||
IPV4 = 31,
|
||||
NETMASK = 32,
|
||||
HEX_CONST = 33,
|
||||
BROADCAST = 34,
|
||||
ADDR = 35,
|
||||
BCAST = 36,
|
||||
MASK = 37,
|
||||
P_T_P = 38,
|
||||
INET6 = 39,
|
||||
IPV6 = 40,
|
||||
PERCENT = 41,
|
||||
PREFIXLEN = 42,
|
||||
SCOPEID = 43,
|
||||
SLASH = 44,
|
||||
SCOPE = 45,
|
||||
HOST = 46,
|
||||
GLOBAL = 47,
|
||||
GROUPS = 48,
|
||||
MTU = 49,
|
||||
LLADR = 50,
|
||||
Whitespace = 51,
|
||||
NUMBER = 52,
|
||||
NEG_INT_CONST = 53,
|
||||
HEX_DIGIT = 54,
|
||||
DIGIT = 55,
|
||||
NUM_3DIGIT = 56,
|
||||
NUM_HEX_4DIGIT = 57,
|
||||
NUMBER_ADDRESS_OR_WORD = 58,
|
||||
AMPERSAND = 59,
|
||||
STAR = 60,
|
||||
MINUS = 61,
|
||||
DOT = 62,
|
||||
QUESTION = 63,
|
||||
OPENING_PAREN = 64,
|
||||
CLOSING_PAREN = 65,
|
||||
OPENING_SQUARE = 66,
|
||||
CLOSING_SQUARE = 67,
|
||||
OPENING_BRACE = 68,
|
||||
CLOSING_BRACE = 69,
|
||||
LESS_THAN = 70,
|
||||
GREATER_THAN = 71,
|
||||
NULL_TREE_LOOKAHEAD = 3
|
||||
};
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /*INC_IfconfigCfgParserTokenTypes_hpp_*/
|
||||
@ -1,70 +0,0 @@
|
||||
// $ANTLR 2.7.7 (20090306): ifconfig.g -> IfconfigCfgParserTokenTypes.txt$
|
||||
IfconfigCfgParser // output token vocab name
|
||||
NEWLINE=4
|
||||
DOUBLE_NEWLINE=5
|
||||
LINE_COMMENT=6
|
||||
PRIORITY="priority"=7
|
||||
MEDIA="media"=8
|
||||
STATUS="status"=9
|
||||
WORD=10
|
||||
UP="UP"=11
|
||||
UPPER_BROADCAST="BROADCAST"=12
|
||||
UPPER_POINTOPOINT="POINTOPOINT"=13
|
||||
UPPER_LOOPBACK="LOOPBACK"=14
|
||||
UPPER_NOARP="NOARP"=15
|
||||
UPPER_RUNNING="RUNNING"=16
|
||||
LOOPBACK="Loopback"=17
|
||||
COLLISIONS="collisions"=18
|
||||
COLON=19
|
||||
RX="RX"=20
|
||||
TX="TX"=21
|
||||
FLAGS="flags"=22
|
||||
EQUAL=23
|
||||
INT_CONST=24
|
||||
LINK="Link"=25
|
||||
ENCAP="encap"=26
|
||||
LLADDR=27
|
||||
MAC_ADDRESS=28
|
||||
HWADDR="HWaddr"=29
|
||||
INET="inet"=30
|
||||
IPV4=31
|
||||
NETMASK="netmask"=32
|
||||
HEX_CONST=33
|
||||
BROADCAST="broadcast"=34
|
||||
ADDR="addr"=35
|
||||
BCAST="Bcast"=36
|
||||
MASK="Mask"=37
|
||||
P_T_P="P-t-P"=38
|
||||
INET6="inet6"=39
|
||||
IPV6=40
|
||||
PERCENT=41
|
||||
PREFIXLEN="prefixlen"=42
|
||||
SCOPEID="scopeid"=43
|
||||
SLASH=44
|
||||
SCOPE="Scope"=45
|
||||
HOST="Host"=46
|
||||
GLOBAL="Global"=47
|
||||
GROUPS="groups"=48
|
||||
MTU="mtu"=49
|
||||
LLADR="lladdr"=50
|
||||
Whitespace=51
|
||||
NUMBER=52
|
||||
NEG_INT_CONST=53
|
||||
HEX_DIGIT=54
|
||||
DIGIT=55
|
||||
NUM_3DIGIT=56
|
||||
NUM_HEX_4DIGIT=57
|
||||
NUMBER_ADDRESS_OR_WORD=58
|
||||
AMPERSAND=59
|
||||
STAR=60
|
||||
MINUS=61
|
||||
DOT=62
|
||||
QUESTION=63
|
||||
OPENING_PAREN=64
|
||||
CLOSING_PAREN=65
|
||||
OPENING_SQUARE=66
|
||||
CLOSING_SQUARE=67
|
||||
OPENING_BRACE=68
|
||||
CLOSING_BRACE=69
|
||||
LESS_THAN=70
|
||||
GREATER_THAN=71
|
||||
@ -1,11 +1,11 @@
|
||||
/* $ANTLR 2.7.7 (20090306): "ifconfig.g" -> "IfconfigCfgLexer.cpp"$ */
|
||||
#line 43 "ifconfig.g"
|
||||
/* $ANTLR 2.7.7 (20100319): "ifconfig_linux.g" -> "IfconfigLinuxCfgLexer.cpp"$ */
|
||||
#line 43 "ifconfig_linux.g"
|
||||
|
||||
// gets inserted before the antlr generated includes in the cpp
|
||||
// file
|
||||
|
||||
#line 8 "IfconfigCfgLexer.cpp"
|
||||
#include "IfconfigCfgLexer.hpp"
|
||||
#line 8 "IfconfigLinuxCfgLexer.cpp"
|
||||
#include "IfconfigLinuxCfgLexer.hpp"
|
||||
#include <antlr/CharBuffer.hpp>
|
||||
#include <antlr/TokenStreamException.hpp>
|
||||
#include <antlr/TokenStreamIOException.hpp>
|
||||
@ -14,72 +14,73 @@
|
||||
#include <antlr/CharStreamIOException.hpp>
|
||||
#include <antlr/NoViableAltForCharException.hpp>
|
||||
|
||||
#line 49 "ifconfig.g"
|
||||
#line 49 "ifconfig_linux.g"
|
||||
|
||||
// gets inserted after the antlr generated includes in the cpp
|
||||
// file
|
||||
#include <antlr/Token.hpp>
|
||||
#include <antlr/TokenBuffer.hpp>
|
||||
|
||||
#line 25 "IfconfigCfgLexer.cpp"
|
||||
#line 1 "ifconfig.g"
|
||||
#line 27 "IfconfigCfgLexer.cpp"
|
||||
IfconfigCfgLexer::IfconfigCfgLexer(ANTLR_USE_NAMESPACE(std)istream& in)
|
||||
#line 25 "IfconfigLinuxCfgLexer.cpp"
|
||||
#line 1 "ifconfig_linux.g"
|
||||
#line 27 "IfconfigLinuxCfgLexer.cpp"
|
||||
IfconfigLinuxCfgLexer::IfconfigLinuxCfgLexer(ANTLR_USE_NAMESPACE(std)istream& in)
|
||||
: ANTLR_USE_NAMESPACE(antlr)CharScanner(new ANTLR_USE_NAMESPACE(antlr)CharBuffer(in),true)
|
||||
{
|
||||
initLiterals();
|
||||
}
|
||||
|
||||
IfconfigCfgLexer::IfconfigCfgLexer(ANTLR_USE_NAMESPACE(antlr)InputBuffer& ib)
|
||||
IfconfigLinuxCfgLexer::IfconfigLinuxCfgLexer(ANTLR_USE_NAMESPACE(antlr)InputBuffer& ib)
|
||||
: ANTLR_USE_NAMESPACE(antlr)CharScanner(ib,true)
|
||||
{
|
||||
initLiterals();
|
||||
}
|
||||
|
||||
IfconfigCfgLexer::IfconfigCfgLexer(const ANTLR_USE_NAMESPACE(antlr)LexerSharedInputState& state)
|
||||
IfconfigLinuxCfgLexer::IfconfigLinuxCfgLexer(const ANTLR_USE_NAMESPACE(antlr)LexerSharedInputState& state)
|
||||
: ANTLR_USE_NAMESPACE(antlr)CharScanner(state,true)
|
||||
{
|
||||
initLiterals();
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::initLiterals()
|
||||
void IfconfigLinuxCfgLexer::initLiterals()
|
||||
{
|
||||
literals["priority"] = 7;
|
||||
literals["broadcast"] = 34;
|
||||
literals["Scope"] = 45;
|
||||
literals["scopeid"] = 43;
|
||||
literals["Host"] = 46;
|
||||
literals["broadcast"] = 43;
|
||||
literals["Scope"] = 38;
|
||||
literals["scopeid"] = 46;
|
||||
literals["Host"] = 39;
|
||||
literals["UP"] = 11;
|
||||
literals["groups"] = 48;
|
||||
literals["HWaddr"] = 29;
|
||||
literals["groups"] = 41;
|
||||
literals["HWaddr"] = 27;
|
||||
literals["encap"] = 26;
|
||||
literals["NOARP"] = 15;
|
||||
literals["Mask"] = 37;
|
||||
literals["Mask"] = 33;
|
||||
literals["netmask"] = 44;
|
||||
literals["RUNNING"] = 16;
|
||||
literals["netmask"] = 32;
|
||||
literals["inet"] = 30;
|
||||
literals["inet"] = 29;
|
||||
literals["media"] = 8;
|
||||
literals["BROADCAST"] = 12;
|
||||
literals["P-t-P"] = 38;
|
||||
literals["prefixlen"] = 42;
|
||||
literals["P-t-P"] = 34;
|
||||
literals["prefixlen"] = 45;
|
||||
literals["Loopback"] = 17;
|
||||
literals["Bcast"] = 36;
|
||||
literals["mtu"] = 49;
|
||||
literals["inet6"] = 39;
|
||||
literals["Interrupt"] = 18;
|
||||
literals["Bcast"] = 32;
|
||||
literals["mtu"] = 47;
|
||||
literals["inet6"] = 35;
|
||||
literals["status"] = 9;
|
||||
literals["LOOPBACK"] = 14;
|
||||
literals["Link"] = 25;
|
||||
literals["TX"] = 21;
|
||||
literals["RX"] = 20;
|
||||
literals["addr"] = 35;
|
||||
literals["Global"] = 47;
|
||||
literals["TX"] = 22;
|
||||
literals["addr"] = 30;
|
||||
literals["RX"] = 21;
|
||||
literals["Global"] = 40;
|
||||
literals["POINTOPOINT"] = 13;
|
||||
literals["flags"] = 22;
|
||||
literals["lladdr"] = 50;
|
||||
literals["collisions"] = 18;
|
||||
literals["flags"] = 42;
|
||||
literals["lladdr"] = 48;
|
||||
literals["collisions"] = 19;
|
||||
}
|
||||
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken IfconfigCfgLexer::nextToken()
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken IfconfigLinuxCfgLexer::nextToken()
|
||||
{
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken theRetToken;
|
||||
for (;;) {
|
||||
@ -300,7 +301,7 @@ tryAgain:;
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mLINE_COMMENT(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mLINE_COMMENT(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = LINE_COMMENT;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -329,7 +330,7 @@ void IfconfigCfgLexer::mLINE_COMMENT(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mNEWLINE(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mNEWLINE(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = NEWLINE;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -350,9 +351,9 @@ void IfconfigCfgLexer::mNEWLINE(bool _createToken) {
|
||||
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 497 "ifconfig.g"
|
||||
#line 448 "ifconfig_linux.g"
|
||||
newline();
|
||||
#line 356 "IfconfigCfgLexer.cpp"
|
||||
#line 357 "IfconfigLinuxCfgLexer.cpp"
|
||||
}
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
@ -362,7 +363,7 @@ void IfconfigCfgLexer::mNEWLINE(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mWhitespace(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mWhitespace(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = Whitespace;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -431,9 +432,9 @@ void IfconfigCfgLexer::mWhitespace(bool _createToken) {
|
||||
}
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 403 "ifconfig.g"
|
||||
#line 354 "ifconfig_linux.g"
|
||||
_ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP;
|
||||
#line 437 "IfconfigCfgLexer.cpp"
|
||||
#line 438 "IfconfigLinuxCfgLexer.cpp"
|
||||
}
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
@ -443,7 +444,7 @@ void IfconfigCfgLexer::mWhitespace(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mINT_CONST(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mINT_CONST(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = INT_CONST;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -456,7 +457,7 @@ void IfconfigCfgLexer::mINT_CONST(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mHEX_CONST(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mHEX_CONST(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = HEX_CONST;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -469,7 +470,7 @@ void IfconfigCfgLexer::mHEX_CONST(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mNUMBER(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mNUMBER(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = NUMBER;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -482,7 +483,7 @@ void IfconfigCfgLexer::mNUMBER(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mNEG_INT_CONST(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mNEG_INT_CONST(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = NEG_INT_CONST;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -495,7 +496,7 @@ void IfconfigCfgLexer::mNEG_INT_CONST(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mCOLON(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mCOLON(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = COLON;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -508,7 +509,7 @@ void IfconfigCfgLexer::mCOLON(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mHEX_DIGIT(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mHEX_DIGIT(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = HEX_DIGIT;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -563,7 +564,7 @@ void IfconfigCfgLexer::mHEX_DIGIT(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mDIGIT(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mDIGIT(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = DIGIT;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -577,7 +578,7 @@ void IfconfigCfgLexer::mDIGIT(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mNUM_3DIGIT(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mNUM_3DIGIT(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = NUM_3DIGIT;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -611,7 +612,7 @@ void IfconfigCfgLexer::mNUM_3DIGIT(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mNUM_HEX_4DIGIT(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mNUM_HEX_4DIGIT(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = NUM_HEX_4DIGIT;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -653,7 +654,7 @@ void IfconfigCfgLexer::mNUM_HEX_4DIGIT(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mMAC_ADDRESS(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mMAC_ADDRESS(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = MAC_ADDRESS;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -666,7 +667,7 @@ void IfconfigCfgLexer::mMAC_ADDRESS(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = NUMBER_ADDRESS_OR_WORD;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -701,9 +702,9 @@ void IfconfigCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
mNUM_3DIGIT(false);
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 445 "ifconfig.g"
|
||||
#line 396 "ifconfig_linux.g"
|
||||
_ttype = IPV4;
|
||||
#line 707 "IfconfigCfgLexer.cpp"
|
||||
#line 708 "IfconfigLinuxCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else {
|
||||
@ -751,9 +752,9 @@ void IfconfigCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 457 "ifconfig.g"
|
||||
#line 408 "ifconfig_linux.g"
|
||||
_ttype = MAC_ADDRESS;
|
||||
#line 757 "IfconfigCfgLexer.cpp"
|
||||
#line 758 "IfconfigLinuxCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else {
|
||||
@ -848,9 +849,9 @@ void IfconfigCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
}
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 466 "ifconfig.g"
|
||||
#line 417 "ifconfig_linux.g"
|
||||
_ttype = IPV6;
|
||||
#line 854 "IfconfigCfgLexer.cpp"
|
||||
#line 855 "IfconfigLinuxCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else if ((_tokenSet_2.member(LA(1))) && (_tokenSet_4.member(LA(2))) && (_tokenSet_4.member(LA(3)))) {
|
||||
@ -871,9 +872,9 @@ void IfconfigCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
_loop77:;
|
||||
} // ( ... )+
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 469 "ifconfig.g"
|
||||
#line 420 "ifconfig_linux.g"
|
||||
_ttype = IPV6;
|
||||
#line 877 "IfconfigCfgLexer.cpp"
|
||||
#line 878 "IfconfigLinuxCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else {
|
||||
@ -882,9 +883,9 @@ void IfconfigCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 471 "ifconfig.g"
|
||||
#line 422 "ifconfig_linux.g"
|
||||
_ttype = IPV6;
|
||||
#line 888 "IfconfigCfgLexer.cpp"
|
||||
#line 889 "IfconfigLinuxCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else {
|
||||
@ -924,9 +925,9 @@ void IfconfigCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
_loop81:;
|
||||
} // ( ... )*
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 474 "ifconfig.g"
|
||||
#line 425 "ifconfig_linux.g"
|
||||
_ttype = IPV6;
|
||||
#line 930 "IfconfigCfgLexer.cpp"
|
||||
#line 931 "IfconfigLinuxCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else {
|
||||
@ -1007,18 +1008,18 @@ void IfconfigCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
} // ( ... )+
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 481 "ifconfig.g"
|
||||
#line 432 "ifconfig_linux.g"
|
||||
_ttype = NUMBER;
|
||||
#line 1013 "IfconfigCfgLexer.cpp"
|
||||
#line 1014 "IfconfigLinuxCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else if ((LA(1) == 0x3a /* ':' */ ) && (LA(2) == 0x3a /* ':' */ ) && (true)) {
|
||||
match(':' /* charlit */ );
|
||||
match(':' /* charlit */ );
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 476 "ifconfig.g"
|
||||
#line 427 "ifconfig_linux.g"
|
||||
_ttype = IPV6;
|
||||
#line 1022 "IfconfigCfgLexer.cpp"
|
||||
#line 1023 "IfconfigLinuxCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else if ((LA(1) == 0x30 /* '0' */ ) && (LA(2) == 0x58 /* 'X' */ || LA(2) == 0x78 /* 'x' */ )) {
|
||||
@ -1055,17 +1056,17 @@ void IfconfigCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
_loop97:;
|
||||
} // ( ... )*
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 485 "ifconfig.g"
|
||||
#line 436 "ifconfig_linux.g"
|
||||
_ttype = HEX_CONST;
|
||||
#line 1061 "IfconfigCfgLexer.cpp"
|
||||
#line 1062 "IfconfigLinuxCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else if ((LA(1) == 0x3a /* ':' */ ) && (true)) {
|
||||
match(':' /* charlit */ );
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 478 "ifconfig.g"
|
||||
#line 429 "ifconfig_linux.g"
|
||||
_ttype = COLON;
|
||||
#line 1069 "IfconfigCfgLexer.cpp"
|
||||
#line 1070 "IfconfigLinuxCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ )) && (true) && (true)) {
|
||||
@ -1084,9 +1085,9 @@ void IfconfigCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
_loop94:;
|
||||
} // ( ... )+
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 483 "ifconfig.g"
|
||||
#line 434 "ifconfig_linux.g"
|
||||
_ttype = INT_CONST;
|
||||
#line 1090 "IfconfigCfgLexer.cpp"
|
||||
#line 1091 "IfconfigLinuxCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else if ((_tokenSet_6.member(LA(1))) && (true) && (true)) {
|
||||
@ -1304,9 +1305,9 @@ void IfconfigCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
_loop100:;
|
||||
} // ( ... )*
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 493 "ifconfig.g"
|
||||
#line 444 "ifconfig_linux.g"
|
||||
_ttype = WORD;
|
||||
#line 1310 "IfconfigCfgLexer.cpp"
|
||||
#line 1311 "IfconfigLinuxCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else {
|
||||
@ -1322,7 +1323,7 @@ void IfconfigCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mPERCENT(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mPERCENT(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = PERCENT;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -1336,7 +1337,7 @@ void IfconfigCfgLexer::mPERCENT(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mAMPERSAND(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mAMPERSAND(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = AMPERSAND;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -1350,7 +1351,7 @@ void IfconfigCfgLexer::mAMPERSAND(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mSTAR(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mSTAR(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = STAR;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -1364,7 +1365,7 @@ void IfconfigCfgLexer::mSTAR(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mMINUS(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mMINUS(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = MINUS;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -1378,7 +1379,7 @@ void IfconfigCfgLexer::mMINUS(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mDOT(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mDOT(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = DOT;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -1392,7 +1393,7 @@ void IfconfigCfgLexer::mDOT(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mSLASH(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mSLASH(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = SLASH;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -1406,7 +1407,7 @@ void IfconfigCfgLexer::mSLASH(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mEQUAL(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mEQUAL(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = EQUAL;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -1420,7 +1421,7 @@ void IfconfigCfgLexer::mEQUAL(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mQUESTION(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mQUESTION(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = QUESTION;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -1434,7 +1435,7 @@ void IfconfigCfgLexer::mQUESTION(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mOPENING_PAREN(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mOPENING_PAREN(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = OPENING_PAREN;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -1448,7 +1449,7 @@ void IfconfigCfgLexer::mOPENING_PAREN(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mCLOSING_PAREN(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mCLOSING_PAREN(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = CLOSING_PAREN;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -1462,7 +1463,7 @@ void IfconfigCfgLexer::mCLOSING_PAREN(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mOPENING_SQUARE(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mOPENING_SQUARE(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = OPENING_SQUARE;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -1476,7 +1477,7 @@ void IfconfigCfgLexer::mOPENING_SQUARE(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mCLOSING_SQUARE(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mCLOSING_SQUARE(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = CLOSING_SQUARE;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -1490,7 +1491,7 @@ void IfconfigCfgLexer::mCLOSING_SQUARE(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mOPENING_BRACE(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mOPENING_BRACE(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = OPENING_BRACE;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -1504,7 +1505,7 @@ void IfconfigCfgLexer::mOPENING_BRACE(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mCLOSING_BRACE(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mCLOSING_BRACE(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = CLOSING_BRACE;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -1518,7 +1519,7 @@ void IfconfigCfgLexer::mCLOSING_BRACE(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mLESS_THAN(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mLESS_THAN(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = LESS_THAN;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -1532,7 +1533,7 @@ void IfconfigCfgLexer::mLESS_THAN(bool _createToken) {
|
||||
_saveIndex=0;
|
||||
}
|
||||
|
||||
void IfconfigCfgLexer::mGREATER_THAN(bool _createToken) {
|
||||
void IfconfigLinuxCfgLexer::mGREATER_THAN(bool _createToken) {
|
||||
int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
|
||||
_ttype = GREATER_THAN;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
@ -1547,31 +1548,31 @@ void IfconfigCfgLexer::mGREATER_THAN(bool _createToken) {
|
||||
}
|
||||
|
||||
|
||||
const unsigned long IfconfigCfgLexer::_tokenSet_0_data_[] = { 4294958072UL, 1UL, 0UL, 2147483648UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
const unsigned long IfconfigLinuxCfgLexer::_tokenSet_0_data_[] = { 4294958072UL, 1UL, 0UL, 2147483648UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
// 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
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigCfgLexer::_tokenSet_0(_tokenSet_0_data_,16);
|
||||
const unsigned long IfconfigCfgLexer::_tokenSet_1_data_[] = { 4294958072UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigLinuxCfgLexer::_tokenSet_0(_tokenSet_0_data_,16);
|
||||
const unsigned long IfconfigLinuxCfgLexer::_tokenSet_1_data_[] = { 4294958072UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
// 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
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigCfgLexer::_tokenSet_1(_tokenSet_1_data_,16);
|
||||
const unsigned long IfconfigCfgLexer::_tokenSet_2_data_[] = { 0UL, 67043328UL, 126UL, 126UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigLinuxCfgLexer::_tokenSet_1(_tokenSet_1_data_,16);
|
||||
const unsigned long IfconfigLinuxCfgLexer::_tokenSet_2_data_[] = { 0UL, 67043328UL, 126UL, 126UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
// 0 1 2 3 4 5 6 7 8 9 A B C D E F
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigCfgLexer::_tokenSet_2(_tokenSet_2_data_,10);
|
||||
const unsigned long IfconfigCfgLexer::_tokenSet_3_data_[] = { 0UL, 67059712UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigLinuxCfgLexer::_tokenSet_2(_tokenSet_2_data_,10);
|
||||
const unsigned long IfconfigLinuxCfgLexer::_tokenSet_3_data_[] = { 0UL, 67059712UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
// . 0 1 2 3 4 5 6 7 8 9
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigCfgLexer::_tokenSet_3(_tokenSet_3_data_,10);
|
||||
const unsigned long IfconfigCfgLexer::_tokenSet_4_data_[] = { 0UL, 134152192UL, 126UL, 126UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigLinuxCfgLexer::_tokenSet_3(_tokenSet_3_data_,10);
|
||||
const unsigned long IfconfigLinuxCfgLexer::_tokenSet_4_data_[] = { 0UL, 134152192UL, 126UL, 126UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
// 0 1 2 3 4 5 6 7 8 9 : A B C D E F
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigCfgLexer::_tokenSet_4(_tokenSet_4_data_,10);
|
||||
const unsigned long IfconfigCfgLexer::_tokenSet_5_data_[] = { 4294967288UL, 4227858431UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigLinuxCfgLexer::_tokenSet_4(_tokenSet_4_data_,10);
|
||||
const unsigned long IfconfigLinuxCfgLexer::_tokenSet_5_data_[] = { 4294967288UL, 4227858431UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
// 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
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigCfgLexer::_tokenSet_5(_tokenSet_5_data_,16);
|
||||
const unsigned long IfconfigCfgLexer::_tokenSet_6_data_[] = { 0UL, 0UL, 134217726UL, 134217726UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigLinuxCfgLexer::_tokenSet_5(_tokenSet_5_data_,16);
|
||||
const unsigned long IfconfigLinuxCfgLexer::_tokenSet_6_data_[] = { 0UL, 0UL, 134217726UL, 134217726UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
// A B C D E F G
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigCfgLexer::_tokenSet_6(_tokenSet_6_data_,10);
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigLinuxCfgLexer::_tokenSet_6(_tokenSet_6_data_,10);
|
||||
|
||||
99
src/parsers/IfconfigLinuxCfgLexer.hpp
Normal file
99
src/parsers/IfconfigLinuxCfgLexer.hpp
Normal file
@ -0,0 +1,99 @@
|
||||
#ifndef INC_IfconfigLinuxCfgLexer_hpp_
|
||||
#define INC_IfconfigLinuxCfgLexer_hpp_
|
||||
|
||||
#line 25 "ifconfig_linux.g"
|
||||
|
||||
// gets inserted before antlr generated includes in the header
|
||||
// file
|
||||
#include "IfconfigImporter.h"
|
||||
|
||||
#line 11 "IfconfigLinuxCfgLexer.hpp"
|
||||
#include <antlr/config.hpp>
|
||||
/* $ANTLR 2.7.7 (20100319): "ifconfig_linux.g" -> "IfconfigLinuxCfgLexer.hpp"$ */
|
||||
#include <antlr/CommonToken.hpp>
|
||||
#include <antlr/InputBuffer.hpp>
|
||||
#include <antlr/BitSet.hpp>
|
||||
#include "IfconfigLinuxCfgParserTokenTypes.hpp"
|
||||
#include <antlr/CharScanner.hpp>
|
||||
#line 32 "ifconfig_linux.g"
|
||||
|
||||
// gets inserted after antlr generated includes in the header file
|
||||
// outside any generated namespace specifications
|
||||
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
|
||||
class IfconfigImporter;
|
||||
|
||||
#line 29 "IfconfigLinuxCfgLexer.hpp"
|
||||
#line 57 "ifconfig_linux.g"
|
||||
|
||||
// gets inserted after generated namespace specifications in the
|
||||
// header file. But outside the generated class.
|
||||
|
||||
#line 35 "IfconfigLinuxCfgLexer.hpp"
|
||||
class CUSTOM_API IfconfigLinuxCfgLexer : public ANTLR_USE_NAMESPACE(antlr)CharScanner, public IfconfigLinuxCfgParserTokenTypes
|
||||
{
|
||||
#line 1 "ifconfig_linux.g"
|
||||
#line 39 "IfconfigLinuxCfgLexer.hpp"
|
||||
private:
|
||||
void initLiterals();
|
||||
public:
|
||||
bool getCaseSensitiveLiterals() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
public:
|
||||
IfconfigLinuxCfgLexer(ANTLR_USE_NAMESPACE(std)istream& in);
|
||||
IfconfigLinuxCfgLexer(ANTLR_USE_NAMESPACE(antlr)InputBuffer& ib);
|
||||
IfconfigLinuxCfgLexer(const ANTLR_USE_NAMESPACE(antlr)LexerSharedInputState& state);
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken nextToken();
|
||||
public: void mLINE_COMMENT(bool _createToken);
|
||||
public: void mNEWLINE(bool _createToken);
|
||||
public: void mWhitespace(bool _createToken);
|
||||
protected: void mINT_CONST(bool _createToken);
|
||||
protected: void mHEX_CONST(bool _createToken);
|
||||
protected: void mNUMBER(bool _createToken);
|
||||
protected: void mNEG_INT_CONST(bool _createToken);
|
||||
protected: void mCOLON(bool _createToken);
|
||||
protected: void mHEX_DIGIT(bool _createToken);
|
||||
protected: void mDIGIT(bool _createToken);
|
||||
protected: void mNUM_3DIGIT(bool _createToken);
|
||||
protected: void mNUM_HEX_4DIGIT(bool _createToken);
|
||||
protected: void mMAC_ADDRESS(bool _createToken);
|
||||
public: void mNUMBER_ADDRESS_OR_WORD(bool _createToken);
|
||||
public: void mPERCENT(bool _createToken);
|
||||
public: void mAMPERSAND(bool _createToken);
|
||||
public: void mSTAR(bool _createToken);
|
||||
public: void mMINUS(bool _createToken);
|
||||
public: void mDOT(bool _createToken);
|
||||
public: void mSLASH(bool _createToken);
|
||||
public: void mEQUAL(bool _createToken);
|
||||
public: void mQUESTION(bool _createToken);
|
||||
public: void mOPENING_PAREN(bool _createToken);
|
||||
public: void mCLOSING_PAREN(bool _createToken);
|
||||
public: void mOPENING_SQUARE(bool _createToken);
|
||||
public: void mCLOSING_SQUARE(bool _createToken);
|
||||
public: void mOPENING_BRACE(bool _createToken);
|
||||
public: void mCLOSING_BRACE(bool _createToken);
|
||||
public: void mLESS_THAN(bool _createToken);
|
||||
public: void mGREATER_THAN(bool _createToken);
|
||||
private:
|
||||
|
||||
static const unsigned long _tokenSet_0_data_[];
|
||||
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_0;
|
||||
static const unsigned long _tokenSet_1_data_[];
|
||||
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_1;
|
||||
static const unsigned long _tokenSet_2_data_[];
|
||||
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_2;
|
||||
static const unsigned long _tokenSet_3_data_[];
|
||||
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_3;
|
||||
static const unsigned long _tokenSet_4_data_[];
|
||||
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_4;
|
||||
static const unsigned long _tokenSet_5_data_[];
|
||||
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_5;
|
||||
static const unsigned long _tokenSet_6_data_[];
|
||||
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_6;
|
||||
};
|
||||
|
||||
#endif /*INC_IfconfigLinuxCfgLexer_hpp_*/
|
||||
@ -1,50 +1,50 @@
|
||||
/* $ANTLR 2.7.7 (20090306): "ifconfig.g" -> "IfconfigCfgParser.cpp"$ */
|
||||
#line 43 "ifconfig.g"
|
||||
/* $ANTLR 2.7.7 (20100319): "ifconfig_linux.g" -> "IfconfigLinuxCfgParser.cpp"$ */
|
||||
#line 43 "ifconfig_linux.g"
|
||||
|
||||
// gets inserted before the antlr generated includes in the cpp
|
||||
// file
|
||||
|
||||
#line 8 "IfconfigCfgParser.cpp"
|
||||
#include "IfconfigCfgParser.hpp"
|
||||
#line 8 "IfconfigLinuxCfgParser.cpp"
|
||||
#include "IfconfigLinuxCfgParser.hpp"
|
||||
#include <antlr/NoViableAltException.hpp>
|
||||
#include <antlr/SemanticException.hpp>
|
||||
#include <antlr/ASTFactory.hpp>
|
||||
#line 49 "ifconfig.g"
|
||||
#line 49 "ifconfig_linux.g"
|
||||
|
||||
// gets inserted after the antlr generated includes in the cpp
|
||||
// file
|
||||
#include <antlr/Token.hpp>
|
||||
#include <antlr/TokenBuffer.hpp>
|
||||
|
||||
#line 20 "IfconfigCfgParser.cpp"
|
||||
#line 1 "ifconfig.g"
|
||||
#line 22 "IfconfigCfgParser.cpp"
|
||||
IfconfigCfgParser::IfconfigCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf, int k)
|
||||
#line 20 "IfconfigLinuxCfgParser.cpp"
|
||||
#line 1 "ifconfig_linux.g"
|
||||
#line 22 "IfconfigLinuxCfgParser.cpp"
|
||||
IfconfigLinuxCfgParser::IfconfigLinuxCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf, int k)
|
||||
: ANTLR_USE_NAMESPACE(antlr)LLkParser(tokenBuf,k)
|
||||
{
|
||||
}
|
||||
|
||||
IfconfigCfgParser::IfconfigCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf)
|
||||
IfconfigLinuxCfgParser::IfconfigLinuxCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf)
|
||||
: ANTLR_USE_NAMESPACE(antlr)LLkParser(tokenBuf,2)
|
||||
{
|
||||
}
|
||||
|
||||
IfconfigCfgParser::IfconfigCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer, int k)
|
||||
IfconfigLinuxCfgParser::IfconfigLinuxCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer, int k)
|
||||
: ANTLR_USE_NAMESPACE(antlr)LLkParser(lexer,k)
|
||||
{
|
||||
}
|
||||
|
||||
IfconfigCfgParser::IfconfigCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer)
|
||||
IfconfigLinuxCfgParser::IfconfigLinuxCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer)
|
||||
: ANTLR_USE_NAMESPACE(antlr)LLkParser(lexer,2)
|
||||
{
|
||||
}
|
||||
|
||||
IfconfigCfgParser::IfconfigCfgParser(const ANTLR_USE_NAMESPACE(antlr)ParserSharedInputState& state)
|
||||
IfconfigLinuxCfgParser::IfconfigLinuxCfgParser(const ANTLR_USE_NAMESPACE(antlr)ParserSharedInputState& state)
|
||||
: ANTLR_USE_NAMESPACE(antlr)LLkParser(state,2)
|
||||
{
|
||||
}
|
||||
|
||||
void IfconfigCfgParser::cfgfile() {
|
||||
void IfconfigLinuxCfgParser::cfgfile() {
|
||||
Tracer traceInOut(this, "cfgfile");
|
||||
|
||||
try { // for error handling
|
||||
@ -56,14 +56,19 @@ void IfconfigCfgParser::cfgfile() {
|
||||
comment();
|
||||
break;
|
||||
}
|
||||
case LLADDR:
|
||||
{
|
||||
bsd_hwaddr_line();
|
||||
break;
|
||||
}
|
||||
case HWADDR:
|
||||
{
|
||||
linux_hwaddr_line();
|
||||
hwaddr_line();
|
||||
break;
|
||||
}
|
||||
case INET:
|
||||
{
|
||||
inet_address();
|
||||
break;
|
||||
}
|
||||
case INET6:
|
||||
{
|
||||
inet6_address();
|
||||
break;
|
||||
}
|
||||
case GROUPS:
|
||||
@ -79,14 +84,15 @@ void IfconfigCfgParser::cfgfile() {
|
||||
case UPPER_RUNNING:
|
||||
case LOOPBACK:
|
||||
{
|
||||
linux_interface_flags();
|
||||
interface_flags();
|
||||
break;
|
||||
}
|
||||
case INTERRUPT:
|
||||
case COLLISIONS:
|
||||
case RX:
|
||||
case TX:
|
||||
{
|
||||
linux_interface_statistics();
|
||||
interface_statistics();
|
||||
break;
|
||||
}
|
||||
case NEWLINE:
|
||||
@ -100,23 +106,8 @@ void IfconfigCfgParser::cfgfile() {
|
||||
break;
|
||||
}
|
||||
default:
|
||||
if ((LA(1) == WORD) && (LA(2) == COLON)) {
|
||||
bsd_interface_line();
|
||||
}
|
||||
else if ((LA(1) == WORD) && (LA(2) == LINK)) {
|
||||
linux_interface_line();
|
||||
}
|
||||
else if ((LA(1) == INET) && (LA(2) == IPV4)) {
|
||||
bsd_inet_address();
|
||||
}
|
||||
else if ((LA(1) == INET) && (LA(2) == ADDR)) {
|
||||
linux_inet_address();
|
||||
}
|
||||
else if ((LA(1) == INET6) && (LA(2) == IPV6)) {
|
||||
bsd_inet6_address();
|
||||
}
|
||||
else if ((LA(1) == INET6) && (LA(2) == ADDR)) {
|
||||
linux_inet6_address();
|
||||
if ((LA(1) == WORD) && (LA(2) == COLON || LA(2) == DOT || LA(2) == LINK)) {
|
||||
interface_line();
|
||||
}
|
||||
else if (((LA(1) >= PRIORITY && LA(1) <= WORD)) && (_tokenSet_0.member(LA(2)))) {
|
||||
unknown_line();
|
||||
@ -135,7 +126,7 @@ void IfconfigCfgParser::cfgfile() {
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigCfgParser::comment() {
|
||||
void IfconfigLinuxCfgParser::comment() {
|
||||
Tracer traceInOut(this, "comment");
|
||||
|
||||
try { // for error handling
|
||||
@ -147,56 +138,90 @@ void IfconfigCfgParser::comment() {
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigCfgParser::bsd_interface_line() {
|
||||
Tracer traceInOut(this, "bsd_interface_line");
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken in = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
#line 213 "ifconfig.g"
|
||||
void IfconfigLinuxCfgParser::interface_line() {
|
||||
Tracer traceInOut(this, "interface_line");
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken in1 = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken in2 = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken lbl1 = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken lbl2 = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
#line 206 "ifconfig_linux.g"
|
||||
InterfaceSpec is;
|
||||
#line 156 "IfconfigCfgParser.cpp"
|
||||
#line 150 "IfconfigLinuxCfgParser.cpp"
|
||||
|
||||
try { // for error handling
|
||||
in = LT(1);
|
||||
match(WORD);
|
||||
match(COLON);
|
||||
match(FLAGS);
|
||||
match(EQUAL);
|
||||
match(INT_CONST);
|
||||
#line 216 "ifconfig.g"
|
||||
|
||||
// interface name and status
|
||||
is.name = in->getText();
|
||||
importer->newInterface(is);
|
||||
consumeUntil(NEWLINE);
|
||||
|
||||
#line 172 "IfconfigCfgParser.cpp"
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
|
||||
reportError(ex);
|
||||
recover(ex,_tokenSet_0);
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigCfgParser::linux_interface_line() {
|
||||
Tracer traceInOut(this, "linux_interface_line");
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken in = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
#line 229 "ifconfig.g"
|
||||
InterfaceSpec is;
|
||||
#line 185 "IfconfigCfgParser.cpp"
|
||||
|
||||
try { // for error handling
|
||||
in = LT(1);
|
||||
in1 = LT(1);
|
||||
match(WORD);
|
||||
{
|
||||
switch ( LA(1)) {
|
||||
case DOT:
|
||||
{
|
||||
match(DOT);
|
||||
in2 = LT(1);
|
||||
match(INT_CONST);
|
||||
break;
|
||||
}
|
||||
case COLON:
|
||||
case LINK:
|
||||
{
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
switch ( LA(1)) {
|
||||
case COLON:
|
||||
{
|
||||
match(COLON);
|
||||
{
|
||||
switch ( LA(1)) {
|
||||
case WORD:
|
||||
{
|
||||
lbl1 = LT(1);
|
||||
match(WORD);
|
||||
break;
|
||||
}
|
||||
case INT_CONST:
|
||||
{
|
||||
lbl2 = LT(1);
|
||||
match(INT_CONST);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case LINK:
|
||||
{
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
|
||||
}
|
||||
}
|
||||
}
|
||||
match(LINK);
|
||||
match(ENCAP);
|
||||
match(COLON);
|
||||
match(WORD);
|
||||
#line 232 "ifconfig.g"
|
||||
#line 212 "ifconfig_linux.g"
|
||||
|
||||
// interface name and status
|
||||
is.name = in->getText();
|
||||
if (in2) is.name = in1->getText() + "." + in2->getText();
|
||||
else is.name = in1->getText();
|
||||
if (lbl1) is.label = lbl1->getText();
|
||||
if (lbl2) is.label = lbl2->getText();
|
||||
importer->newInterface(is);
|
||||
|
||||
#line 200 "IfconfigCfgParser.cpp"
|
||||
#line 225 "IfconfigLinuxCfgParser.cpp"
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
|
||||
reportError(ex);
|
||||
@ -204,39 +229,19 @@ void IfconfigCfgParser::linux_interface_line() {
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigCfgParser::bsd_hwaddr_line() {
|
||||
Tracer traceInOut(this, "bsd_hwaddr_line");
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken addr = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
|
||||
try { // for error handling
|
||||
match(LLADDR);
|
||||
addr = LT(1);
|
||||
match(MAC_ADDRESS);
|
||||
#line 244 "ifconfig.g"
|
||||
|
||||
importer->HwAddressForCurrentInterface(addr->getText());
|
||||
|
||||
#line 220 "IfconfigCfgParser.cpp"
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
|
||||
reportError(ex);
|
||||
recover(ex,_tokenSet_0);
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigCfgParser::linux_hwaddr_line() {
|
||||
Tracer traceInOut(this, "linux_hwaddr_line");
|
||||
void IfconfigLinuxCfgParser::hwaddr_line() {
|
||||
Tracer traceInOut(this, "hwaddr_line");
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken addr = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
|
||||
try { // for error handling
|
||||
match(HWADDR);
|
||||
addr = LT(1);
|
||||
match(MAC_ADDRESS);
|
||||
#line 252 "ifconfig.g"
|
||||
#line 227 "ifconfig_linux.g"
|
||||
|
||||
importer->HwAddressForCurrentInterface(addr->getText());
|
||||
|
||||
#line 240 "IfconfigCfgParser.cpp"
|
||||
#line 245 "IfconfigLinuxCfgParser.cpp"
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
|
||||
reportError(ex);
|
||||
@ -244,49 +249,14 @@ void IfconfigCfgParser::linux_hwaddr_line() {
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigCfgParser::bsd_inet_address() {
|
||||
Tracer traceInOut(this, "bsd_inet_address");
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken addr = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken netm = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken bcast = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
#line 261 "ifconfig.g"
|
||||
AddressSpec as;
|
||||
#line 255 "IfconfigCfgParser.cpp"
|
||||
|
||||
try { // for error handling
|
||||
match(INET);
|
||||
addr = LT(1);
|
||||
match(IPV4);
|
||||
match(NETMASK);
|
||||
netm = LT(1);
|
||||
match(HEX_CONST);
|
||||
match(BROADCAST);
|
||||
bcast = LT(1);
|
||||
match(IPV4);
|
||||
#line 264 "ifconfig.g"
|
||||
|
||||
as.at = AddressSpec::INTERFACE_CONFIGURATION;
|
||||
as.address = addr->getText();
|
||||
as.netmask = netm->getText();
|
||||
as.broadcast = bcast->getText();
|
||||
importer->inetConfigurationForCurrentInterface(as);
|
||||
|
||||
#line 275 "IfconfigCfgParser.cpp"
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
|
||||
reportError(ex);
|
||||
recover(ex,_tokenSet_0);
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigCfgParser::linux_inet_address() {
|
||||
Tracer traceInOut(this, "linux_inet_address");
|
||||
void IfconfigLinuxCfgParser::inet_address() {
|
||||
Tracer traceInOut(this, "inet_address");
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken addr = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken bcast = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken netm = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
#line 274 "ifconfig.g"
|
||||
#line 236 "ifconfig_linux.g"
|
||||
AddressSpec as;
|
||||
#line 290 "IfconfigCfgParser.cpp"
|
||||
#line 260 "IfconfigLinuxCfgParser.cpp"
|
||||
|
||||
try { // for error handling
|
||||
match(INET);
|
||||
@ -294,12 +264,12 @@ void IfconfigCfgParser::linux_inet_address() {
|
||||
match(COLON);
|
||||
addr = LT(1);
|
||||
match(IPV4);
|
||||
#line 278 "ifconfig.g"
|
||||
#line 240 "ifconfig_linux.g"
|
||||
|
||||
as.at = AddressSpec::INTERFACE_CONFIGURATION;
|
||||
as.address = addr->getText();
|
||||
|
||||
#line 303 "IfconfigCfgParser.cpp"
|
||||
#line 273 "IfconfigLinuxCfgParser.cpp"
|
||||
{
|
||||
switch ( LA(1)) {
|
||||
case BCAST:
|
||||
@ -331,12 +301,12 @@ void IfconfigCfgParser::linux_inet_address() {
|
||||
netm = LT(1);
|
||||
match(IPV4);
|
||||
}
|
||||
#line 284 "ifconfig.g"
|
||||
#line 246 "ifconfig_linux.g"
|
||||
|
||||
as.netmask = netm->getText();
|
||||
if (bcast) as.broadcast = bcast->getText();
|
||||
|
||||
#line 340 "IfconfigCfgParser.cpp"
|
||||
#line 310 "IfconfigLinuxCfgParser.cpp"
|
||||
break;
|
||||
}
|
||||
case P_T_P:
|
||||
@ -349,11 +319,11 @@ void IfconfigCfgParser::linux_inet_address() {
|
||||
match(COLON);
|
||||
match(IPV4);
|
||||
}
|
||||
#line 290 "ifconfig.g"
|
||||
#line 252 "ifconfig_linux.g"
|
||||
|
||||
// we do not support p2p interfaces at this time
|
||||
|
||||
#line 357 "IfconfigCfgParser.cpp"
|
||||
#line 327 "IfconfigLinuxCfgParser.cpp"
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@ -362,11 +332,11 @@ void IfconfigCfgParser::linux_inet_address() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#line 294 "ifconfig.g"
|
||||
#line 256 "ifconfig_linux.g"
|
||||
|
||||
importer->inetConfigurationForCurrentInterface(as);
|
||||
|
||||
#line 370 "IfconfigCfgParser.cpp"
|
||||
#line 340 "IfconfigLinuxCfgParser.cpp"
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
|
||||
reportError(ex);
|
||||
@ -374,47 +344,13 @@ void IfconfigCfgParser::linux_inet_address() {
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigCfgParser::bsd_inet6_address() {
|
||||
Tracer traceInOut(this, "bsd_inet6_address");
|
||||
void IfconfigLinuxCfgParser::inet6_address() {
|
||||
Tracer traceInOut(this, "inet6_address");
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken addr = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken netm = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
#line 302 "ifconfig.g"
|
||||
#line 264 "ifconfig_linux.g"
|
||||
AddressSpec as;
|
||||
#line 384 "IfconfigCfgParser.cpp"
|
||||
|
||||
try { // for error handling
|
||||
match(INET6);
|
||||
addr = LT(1);
|
||||
match(IPV6);
|
||||
match(PERCENT);
|
||||
match(WORD);
|
||||
match(PREFIXLEN);
|
||||
netm = LT(1);
|
||||
match(INT_CONST);
|
||||
match(SCOPEID);
|
||||
match(HEX_CONST);
|
||||
#line 305 "ifconfig.g"
|
||||
|
||||
as.at = AddressSpec::INTERFACE_CONFIGURATION;
|
||||
as.address = addr->getText();
|
||||
as.netmask = netm->getText();
|
||||
importer->inet6ConfigurationForCurrentInterface(as);
|
||||
|
||||
#line 404 "IfconfigCfgParser.cpp"
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
|
||||
reportError(ex);
|
||||
recover(ex,_tokenSet_0);
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigCfgParser::linux_inet6_address() {
|
||||
Tracer traceInOut(this, "linux_inet6_address");
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken addr = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken netm = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
#line 314 "ifconfig.g"
|
||||
AddressSpec as;
|
||||
#line 418 "IfconfigCfgParser.cpp"
|
||||
#line 354 "IfconfigLinuxCfgParser.cpp"
|
||||
|
||||
try { // for error handling
|
||||
match(INET6);
|
||||
@ -455,14 +391,14 @@ void IfconfigCfgParser::linux_inet6_address() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#line 317 "ifconfig.g"
|
||||
#line 267 "ifconfig_linux.g"
|
||||
|
||||
as.at = AddressSpec::INTERFACE_CONFIGURATION;
|
||||
as.address = addr->getText();
|
||||
as.netmask = netm->getText();
|
||||
importer->inet6ConfigurationForCurrentInterface(as);
|
||||
|
||||
#line 466 "IfconfigCfgParser.cpp"
|
||||
#line 402 "IfconfigLinuxCfgParser.cpp"
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
|
||||
reportError(ex);
|
||||
@ -470,7 +406,7 @@ void IfconfigCfgParser::linux_inet6_address() {
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigCfgParser::groups() {
|
||||
void IfconfigLinuxCfgParser::groups() {
|
||||
Tracer traceInOut(this, "groups");
|
||||
|
||||
try { // for error handling
|
||||
@ -485,8 +421,8 @@ void IfconfigCfgParser::groups() {
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigCfgParser::linux_interface_flags() {
|
||||
Tracer traceInOut(this, "linux_interface_flags");
|
||||
void IfconfigLinuxCfgParser::interface_flags() {
|
||||
Tracer traceInOut(this, "interface_flags");
|
||||
|
||||
try { // for error handling
|
||||
{
|
||||
@ -532,11 +468,11 @@ void IfconfigCfgParser::linux_interface_flags() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#line 186 "ifconfig.g"
|
||||
#line 178 "ifconfig_linux.g"
|
||||
|
||||
consumeUntil(NEWLINE);
|
||||
|
||||
#line 540 "IfconfigCfgParser.cpp"
|
||||
#line 476 "IfconfigLinuxCfgParser.cpp"
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
|
||||
reportError(ex);
|
||||
@ -544,16 +480,34 @@ void IfconfigCfgParser::linux_interface_flags() {
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigCfgParser::linux_interface_statistics() {
|
||||
Tracer traceInOut(this, "linux_interface_statistics");
|
||||
void IfconfigLinuxCfgParser::interface_statistics() {
|
||||
Tracer traceInOut(this, "interface_statistics");
|
||||
|
||||
try { // for error handling
|
||||
{
|
||||
switch ( LA(1)) {
|
||||
case INTERRUPT:
|
||||
case COLLISIONS:
|
||||
{
|
||||
{
|
||||
match(COLLISIONS);
|
||||
{
|
||||
switch ( LA(1)) {
|
||||
case INTERRUPT:
|
||||
{
|
||||
match(INTERRUPT);
|
||||
break;
|
||||
}
|
||||
case COLLISIONS:
|
||||
{
|
||||
match(COLLISIONS);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
|
||||
}
|
||||
}
|
||||
}
|
||||
match(COLON);
|
||||
}
|
||||
break;
|
||||
@ -574,11 +528,11 @@ void IfconfigCfgParser::linux_interface_statistics() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#line 200 "ifconfig.g"
|
||||
#line 192 "ifconfig_linux.g"
|
||||
|
||||
consumeUntil(NEWLINE);
|
||||
|
||||
#line 582 "IfconfigCfgParser.cpp"
|
||||
#line 536 "IfconfigLinuxCfgParser.cpp"
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
|
||||
reportError(ex);
|
||||
@ -586,7 +540,7 @@ void IfconfigCfgParser::linux_interface_statistics() {
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigCfgParser::unknown_line() {
|
||||
void IfconfigLinuxCfgParser::unknown_line() {
|
||||
Tracer traceInOut(this, "unknown_line");
|
||||
|
||||
try { // for error handling
|
||||
@ -618,11 +572,11 @@ void IfconfigCfgParser::unknown_line() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#line 164 "ifconfig.g"
|
||||
#line 156 "ifconfig_linux.g"
|
||||
|
||||
consumeUntil(NEWLINE);
|
||||
|
||||
#line 626 "IfconfigCfgParser.cpp"
|
||||
#line 580 "IfconfigLinuxCfgParser.cpp"
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
|
||||
reportError(ex);
|
||||
@ -630,21 +584,21 @@ void IfconfigCfgParser::unknown_line() {
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigCfgParser::groups_list() {
|
||||
void IfconfigLinuxCfgParser::groups_list() {
|
||||
Tracer traceInOut(this, "groups_list");
|
||||
|
||||
try { // for error handling
|
||||
match(WORD);
|
||||
#line 334 "ifconfig.g"
|
||||
#line 284 "ifconfig_linux.g"
|
||||
importer->addGroupToCurrentInterface(LT(0)->getText());
|
||||
#line 641 "IfconfigCfgParser.cpp"
|
||||
#line 595 "IfconfigLinuxCfgParser.cpp"
|
||||
{ // ( ... )*
|
||||
for (;;) {
|
||||
if ((LA(1) == WORD)) {
|
||||
match(WORD);
|
||||
#line 336 "ifconfig.g"
|
||||
#line 286 "ifconfig_linux.g"
|
||||
importer->addGroupToCurrentInterface(LT(0)->getText());
|
||||
#line 648 "IfconfigCfgParser.cpp"
|
||||
#line 602 "IfconfigLinuxCfgParser.cpp"
|
||||
}
|
||||
else {
|
||||
goto _loop28;
|
||||
@ -660,10 +614,10 @@ void IfconfigCfgParser::groups_list() {
|
||||
}
|
||||
}
|
||||
|
||||
void IfconfigCfgParser::initializeASTFactory( ANTLR_USE_NAMESPACE(antlr)ASTFactory& )
|
||||
void IfconfigLinuxCfgParser::initializeASTFactory( ANTLR_USE_NAMESPACE(antlr)ASTFactory& )
|
||||
{
|
||||
}
|
||||
const char* IfconfigCfgParser::tokenNames[] = {
|
||||
const char* IfconfigLinuxCfgParser::tokenNames[] = {
|
||||
"<0>",
|
||||
"EOF",
|
||||
"<2>",
|
||||
@ -682,40 +636,39 @@ const char* IfconfigCfgParser::tokenNames[] = {
|
||||
"\"NOARP\"",
|
||||
"\"RUNNING\"",
|
||||
"\"Loopback\"",
|
||||
"\"Interrupt\"",
|
||||
"\"collisions\"",
|
||||
"COLON",
|
||||
"\"RX\"",
|
||||
"\"TX\"",
|
||||
"\"flags\"",
|
||||
"EQUAL",
|
||||
"DOT",
|
||||
"INT_CONST",
|
||||
"\"Link\"",
|
||||
"\"encap\"",
|
||||
"LLADDR",
|
||||
"MAC_ADDRESS",
|
||||
"\"HWaddr\"",
|
||||
"MAC_ADDRESS",
|
||||
"\"inet\"",
|
||||
"IPV4",
|
||||
"\"netmask\"",
|
||||
"HEX_CONST",
|
||||
"\"broadcast\"",
|
||||
"\"addr\"",
|
||||
"IPV4",
|
||||
"\"Bcast\"",
|
||||
"\"Mask\"",
|
||||
"\"P-t-P\"",
|
||||
"\"inet6\"",
|
||||
"IPV6",
|
||||
"PERCENT",
|
||||
"\"prefixlen\"",
|
||||
"\"scopeid\"",
|
||||
"SLASH",
|
||||
"\"Scope\"",
|
||||
"\"Host\"",
|
||||
"\"Global\"",
|
||||
"\"groups\"",
|
||||
"\"flags\"",
|
||||
"\"broadcast\"",
|
||||
"\"netmask\"",
|
||||
"\"prefixlen\"",
|
||||
"\"scopeid\"",
|
||||
"\"mtu\"",
|
||||
"\"lladdr\"",
|
||||
"Whitespace",
|
||||
"HEX_CONST",
|
||||
"NUMBER",
|
||||
"NEG_INT_CONST",
|
||||
"HEX_DIGIT",
|
||||
@ -723,10 +676,11 @@ const char* IfconfigCfgParser::tokenNames[] = {
|
||||
"NUM_3DIGIT",
|
||||
"NUM_HEX_4DIGIT",
|
||||
"NUMBER_ADDRESS_OR_WORD",
|
||||
"PERCENT",
|
||||
"AMPERSAND",
|
||||
"STAR",
|
||||
"MINUS",
|
||||
"DOT",
|
||||
"EQUAL",
|
||||
"QUESTION",
|
||||
"OPENING_PAREN",
|
||||
"CLOSING_PAREN",
|
||||
@ -739,16 +693,16 @@ const char* IfconfigCfgParser::tokenNames[] = {
|
||||
0
|
||||
};
|
||||
|
||||
const unsigned long IfconfigCfgParser::_tokenSet_0_data_[] = { 1748500466UL, 65664UL, 0UL, 0UL };
|
||||
const unsigned long IfconfigLinuxCfgParser::_tokenSet_0_data_[] = { 678428658UL, 520UL, 0UL, 0UL };
|
||||
// EOF NEWLINE DOUBLE_NEWLINE LINE_COMMENT "priority" "media" "status"
|
||||
// WORD "UP" "BROADCAST" "POINTOPOINT" "LOOPBACK" "NOARP" "RUNNING" "Loopback"
|
||||
// "collisions" "RX" "TX" LLADDR "HWaddr" "inet" "inet6" "groups"
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigCfgParser::_tokenSet_0(_tokenSet_0_data_,4);
|
||||
const unsigned long IfconfigCfgParser::_tokenSet_1_data_[] = { 2UL, 0UL, 0UL, 0UL };
|
||||
// "Interrupt" "collisions" "RX" "TX" "HWaddr" "inet" "inet6" "groups"
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigLinuxCfgParser::_tokenSet_0(_tokenSet_0_data_,4);
|
||||
const unsigned long IfconfigLinuxCfgParser::_tokenSet_1_data_[] = { 2UL, 0UL, 0UL, 0UL };
|
||||
// EOF
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigCfgParser::_tokenSet_1(_tokenSet_1_data_,4);
|
||||
const unsigned long IfconfigCfgParser::_tokenSet_2_data_[] = { 16UL, 0UL, 0UL, 0UL };
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigLinuxCfgParser::_tokenSet_1(_tokenSet_1_data_,4);
|
||||
const unsigned long IfconfigLinuxCfgParser::_tokenSet_2_data_[] = { 16UL, 0UL, 0UL, 0UL };
|
||||
// NEWLINE
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigCfgParser::_tokenSet_2(_tokenSet_2_data_,4);
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigLinuxCfgParser::_tokenSet_2(_tokenSet_2_data_,4);
|
||||
|
||||
|
||||
@ -1,21 +1,21 @@
|
||||
#ifndef INC_IfconfigCfgParser_hpp_
|
||||
#define INC_IfconfigCfgParser_hpp_
|
||||
#ifndef INC_IfconfigLinuxCfgParser_hpp_
|
||||
#define INC_IfconfigLinuxCfgParser_hpp_
|
||||
|
||||
#line 25 "ifconfig.g"
|
||||
#line 25 "ifconfig_linux.g"
|
||||
|
||||
// gets inserted before antlr generated includes in the header
|
||||
// file
|
||||
#include "IfconfigImporter.h"
|
||||
|
||||
#line 11 "IfconfigCfgParser.hpp"
|
||||
#line 11 "IfconfigLinuxCfgParser.hpp"
|
||||
#include <antlr/config.hpp>
|
||||
/* $ANTLR 2.7.7 (20090306): "ifconfig.g" -> "IfconfigCfgParser.hpp"$ */
|
||||
/* $ANTLR 2.7.7 (20100319): "ifconfig_linux.g" -> "IfconfigLinuxCfgParser.hpp"$ */
|
||||
#include <antlr/TokenStream.hpp>
|
||||
#include <antlr/TokenBuffer.hpp>
|
||||
#include "IfconfigCfgParserTokenTypes.hpp"
|
||||
#include "IfconfigLinuxCfgParserTokenTypes.hpp"
|
||||
#include <antlr/LLkParser.hpp>
|
||||
|
||||
#line 32 "ifconfig.g"
|
||||
#line 32 "ifconfig_linux.g"
|
||||
|
||||
// gets inserted after antlr generated includes in the header file
|
||||
// outside any generated namespace specifications
|
||||
@ -25,16 +25,16 @@
|
||||
|
||||
class IfconfigImporter;
|
||||
|
||||
#line 29 "IfconfigCfgParser.hpp"
|
||||
#line 57 "ifconfig.g"
|
||||
#line 29 "IfconfigLinuxCfgParser.hpp"
|
||||
#line 57 "ifconfig_linux.g"
|
||||
|
||||
// gets inserted after generated namespace specifications in the
|
||||
// header file. But outside the generated class.
|
||||
|
||||
#line 35 "IfconfigCfgParser.hpp"
|
||||
class CUSTOM_API IfconfigCfgParser : public ANTLR_USE_NAMESPACE(antlr)LLkParser, public IfconfigCfgParserTokenTypes
|
||||
#line 35 "IfconfigLinuxCfgParser.hpp"
|
||||
class CUSTOM_API IfconfigLinuxCfgParser : public ANTLR_USE_NAMESPACE(antlr)LLkParser, public IfconfigLinuxCfgParserTokenTypes
|
||||
{
|
||||
#line 82 "ifconfig.g"
|
||||
#line 82 "ifconfig_linux.g"
|
||||
|
||||
// additional methods and members
|
||||
|
||||
@ -64,44 +64,40 @@ class CUSTOM_API IfconfigCfgParser : public ANTLR_USE_NAMESPACE(antlr)LLkParser,
|
||||
std::cerr << s << std::endl;
|
||||
}
|
||||
|
||||
#line 39 "IfconfigCfgParser.hpp"
|
||||
#line 39 "IfconfigLinuxCfgParser.hpp"
|
||||
public:
|
||||
void initializeASTFactory( ANTLR_USE_NAMESPACE(antlr)ASTFactory& factory );
|
||||
protected:
|
||||
IfconfigCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf, int k);
|
||||
IfconfigLinuxCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf, int k);
|
||||
public:
|
||||
IfconfigCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf);
|
||||
IfconfigLinuxCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf);
|
||||
protected:
|
||||
IfconfigCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer, int k);
|
||||
IfconfigLinuxCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer, int k);
|
||||
public:
|
||||
IfconfigCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer);
|
||||
IfconfigCfgParser(const ANTLR_USE_NAMESPACE(antlr)ParserSharedInputState& state);
|
||||
IfconfigLinuxCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer);
|
||||
IfconfigLinuxCfgParser(const ANTLR_USE_NAMESPACE(antlr)ParserSharedInputState& state);
|
||||
int getNumTokens() const
|
||||
{
|
||||
return IfconfigCfgParser::NUM_TOKENS;
|
||||
return IfconfigLinuxCfgParser::NUM_TOKENS;
|
||||
}
|
||||
const char* getTokenName( int type ) const
|
||||
{
|
||||
if( type > getNumTokens() ) return 0;
|
||||
return IfconfigCfgParser::tokenNames[type];
|
||||
return IfconfigLinuxCfgParser::tokenNames[type];
|
||||
}
|
||||
const char* const* getTokenNames() const
|
||||
{
|
||||
return IfconfigCfgParser::tokenNames;
|
||||
return IfconfigLinuxCfgParser::tokenNames;
|
||||
}
|
||||
public: void cfgfile();
|
||||
public: void comment();
|
||||
public: void bsd_interface_line();
|
||||
public: void linux_interface_line();
|
||||
public: void bsd_hwaddr_line();
|
||||
public: void linux_hwaddr_line();
|
||||
public: void bsd_inet_address();
|
||||
public: void linux_inet_address();
|
||||
public: void bsd_inet6_address();
|
||||
public: void linux_inet6_address();
|
||||
public: void interface_line();
|
||||
public: void hwaddr_line();
|
||||
public: void inet_address();
|
||||
public: void inet6_address();
|
||||
public: void groups();
|
||||
public: void linux_interface_flags();
|
||||
public: void linux_interface_statistics();
|
||||
public: void interface_flags();
|
||||
public: void interface_statistics();
|
||||
public: void unknown_line();
|
||||
public: void groups_list();
|
||||
public:
|
||||
@ -130,4 +126,4 @@ private:
|
||||
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_2;
|
||||
};
|
||||
|
||||
#endif /*INC_IfconfigCfgParser_hpp_*/
|
||||
#endif /*INC_IfconfigLinuxCfgParser_hpp_*/
|
||||
88
src/parsers/IfconfigLinuxCfgParserTokenTypes.hpp
Normal file
88
src/parsers/IfconfigLinuxCfgParserTokenTypes.hpp
Normal file
@ -0,0 +1,88 @@
|
||||
#ifndef INC_IfconfigLinuxCfgParserTokenTypes_hpp_
|
||||
#define INC_IfconfigLinuxCfgParserTokenTypes_hpp_
|
||||
|
||||
/* $ANTLR 2.7.7 (20100319): "ifconfig_linux.g" -> "IfconfigLinuxCfgParserTokenTypes.hpp"$ */
|
||||
|
||||
#ifndef CUSTOM_API
|
||||
# define CUSTOM_API
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
struct CUSTOM_API IfconfigLinuxCfgParserTokenTypes {
|
||||
#endif
|
||||
enum {
|
||||
EOF_ = 1,
|
||||
NEWLINE = 4,
|
||||
DOUBLE_NEWLINE = 5,
|
||||
LINE_COMMENT = 6,
|
||||
PRIORITY = 7,
|
||||
MEDIA = 8,
|
||||
STATUS = 9,
|
||||
WORD = 10,
|
||||
UP = 11,
|
||||
UPPER_BROADCAST = 12,
|
||||
UPPER_POINTOPOINT = 13,
|
||||
UPPER_LOOPBACK = 14,
|
||||
UPPER_NOARP = 15,
|
||||
UPPER_RUNNING = 16,
|
||||
LOOPBACK = 17,
|
||||
INTERRUPT = 18,
|
||||
COLLISIONS = 19,
|
||||
COLON = 20,
|
||||
RX = 21,
|
||||
TX = 22,
|
||||
DOT = 23,
|
||||
INT_CONST = 24,
|
||||
LINK = 25,
|
||||
ENCAP = 26,
|
||||
HWADDR = 27,
|
||||
MAC_ADDRESS = 28,
|
||||
INET = 29,
|
||||
ADDR = 30,
|
||||
IPV4 = 31,
|
||||
BCAST = 32,
|
||||
MASK = 33,
|
||||
P_T_P = 34,
|
||||
INET6 = 35,
|
||||
IPV6 = 36,
|
||||
SLASH = 37,
|
||||
SCOPE = 38,
|
||||
HOST = 39,
|
||||
GLOBAL = 40,
|
||||
GROUPS = 41,
|
||||
FLAGS = 42,
|
||||
BROADCAST = 43,
|
||||
NETMASK = 44,
|
||||
PREFIXLEN = 45,
|
||||
SCOPEID = 46,
|
||||
MTU = 47,
|
||||
LLADR = 48,
|
||||
Whitespace = 49,
|
||||
HEX_CONST = 50,
|
||||
NUMBER = 51,
|
||||
NEG_INT_CONST = 52,
|
||||
HEX_DIGIT = 53,
|
||||
DIGIT = 54,
|
||||
NUM_3DIGIT = 55,
|
||||
NUM_HEX_4DIGIT = 56,
|
||||
NUMBER_ADDRESS_OR_WORD = 57,
|
||||
PERCENT = 58,
|
||||
AMPERSAND = 59,
|
||||
STAR = 60,
|
||||
MINUS = 61,
|
||||
EQUAL = 62,
|
||||
QUESTION = 63,
|
||||
OPENING_PAREN = 64,
|
||||
CLOSING_PAREN = 65,
|
||||
OPENING_SQUARE = 66,
|
||||
CLOSING_SQUARE = 67,
|
||||
OPENING_BRACE = 68,
|
||||
CLOSING_BRACE = 69,
|
||||
LESS_THAN = 70,
|
||||
GREATER_THAN = 71,
|
||||
NULL_TREE_LOOKAHEAD = 3
|
||||
};
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif /*INC_IfconfigLinuxCfgParserTokenTypes_hpp_*/
|
||||
70
src/parsers/IfconfigLinuxCfgParserTokenTypes.txt
Normal file
70
src/parsers/IfconfigLinuxCfgParserTokenTypes.txt
Normal file
@ -0,0 +1,70 @@
|
||||
// $ANTLR 2.7.7 (20100319): ifconfig_linux.g -> IfconfigLinuxCfgParserTokenTypes.txt$
|
||||
IfconfigLinuxCfgParser // output token vocab name
|
||||
NEWLINE=4
|
||||
DOUBLE_NEWLINE=5
|
||||
LINE_COMMENT=6
|
||||
PRIORITY="priority"=7
|
||||
MEDIA="media"=8
|
||||
STATUS="status"=9
|
||||
WORD=10
|
||||
UP="UP"=11
|
||||
UPPER_BROADCAST="BROADCAST"=12
|
||||
UPPER_POINTOPOINT="POINTOPOINT"=13
|
||||
UPPER_LOOPBACK="LOOPBACK"=14
|
||||
UPPER_NOARP="NOARP"=15
|
||||
UPPER_RUNNING="RUNNING"=16
|
||||
LOOPBACK="Loopback"=17
|
||||
INTERRUPT="Interrupt"=18
|
||||
COLLISIONS="collisions"=19
|
||||
COLON=20
|
||||
RX="RX"=21
|
||||
TX="TX"=22
|
||||
DOT=23
|
||||
INT_CONST=24
|
||||
LINK="Link"=25
|
||||
ENCAP="encap"=26
|
||||
HWADDR="HWaddr"=27
|
||||
MAC_ADDRESS=28
|
||||
INET="inet"=29
|
||||
ADDR="addr"=30
|
||||
IPV4=31
|
||||
BCAST="Bcast"=32
|
||||
MASK="Mask"=33
|
||||
P_T_P="P-t-P"=34
|
||||
INET6="inet6"=35
|
||||
IPV6=36
|
||||
SLASH=37
|
||||
SCOPE="Scope"=38
|
||||
HOST="Host"=39
|
||||
GLOBAL="Global"=40
|
||||
GROUPS="groups"=41
|
||||
FLAGS="flags"=42
|
||||
BROADCAST="broadcast"=43
|
||||
NETMASK="netmask"=44
|
||||
PREFIXLEN="prefixlen"=45
|
||||
SCOPEID="scopeid"=46
|
||||
MTU="mtu"=47
|
||||
LLADR="lladdr"=48
|
||||
Whitespace=49
|
||||
HEX_CONST=50
|
||||
NUMBER=51
|
||||
NEG_INT_CONST=52
|
||||
HEX_DIGIT=53
|
||||
DIGIT=54
|
||||
NUM_3DIGIT=55
|
||||
NUM_HEX_4DIGIT=56
|
||||
NUMBER_ADDRESS_OR_WORD=57
|
||||
PERCENT=58
|
||||
AMPERSAND=59
|
||||
STAR=60
|
||||
MINUS=61
|
||||
EQUAL=62
|
||||
QUESTION=63
|
||||
OPENING_PAREN=64
|
||||
CLOSING_PAREN=65
|
||||
OPENING_SQUARE=66
|
||||
CLOSING_SQUARE=67
|
||||
OPENING_BRACE=68
|
||||
CLOSING_BRACE=69
|
||||
LESS_THAN=70
|
||||
GREATER_THAN=71
|
||||
428
src/parsers/ifconfig_bsd.g
Normal file
428
src/parsers/ifconfig_bsd.g
Normal file
@ -0,0 +1,428 @@
|
||||
/*
|
||||
|
||||
Firewall Builder
|
||||
|
||||
Copyright (C) 2011 NetCitadel, LLC
|
||||
|
||||
Author: Vadim Kurland vadim@fwbuilder.org
|
||||
|
||||
This program is free software which we release under the GNU General Public
|
||||
License. You may redistribute and/or modify this program under the terms
|
||||
of that license as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
To get a copy of the GNU General Public License, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
*/
|
||||
|
||||
header "pre_include_hpp"
|
||||
{
|
||||
// gets inserted before antlr generated includes in the header
|
||||
// file
|
||||
#include "IfconfigImporter.h"
|
||||
}
|
||||
|
||||
header "post_include_hpp"
|
||||
{
|
||||
// gets inserted after antlr generated includes in the header file
|
||||
// outside any generated namespace specifications
|
||||
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
|
||||
class IfconfigImporter;
|
||||
}
|
||||
|
||||
header "pre_include_cpp"
|
||||
{
|
||||
// gets inserted before the antlr generated includes in the cpp
|
||||
// file
|
||||
}
|
||||
|
||||
header "post_include_cpp"
|
||||
{
|
||||
// gets inserted after the antlr generated includes in the cpp
|
||||
// file
|
||||
#include <antlr/Token.hpp>
|
||||
#include <antlr/TokenBuffer.hpp>
|
||||
}
|
||||
|
||||
header
|
||||
{
|
||||
// gets inserted after generated namespace specifications in the
|
||||
// header file. But outside the generated class.
|
||||
}
|
||||
|
||||
options
|
||||
{
|
||||
language="Cpp";
|
||||
}
|
||||
|
||||
|
||||
class IfconfigBSDCfgParser extends Parser;
|
||||
options
|
||||
{
|
||||
k = 2;
|
||||
|
||||
// when default error handler is disabled, parser errors cause
|
||||
// exception and terminate parsing process. We can catch the exception
|
||||
// and make the error appear in importer log, but import process
|
||||
// terminates which is not always optimal
|
||||
//
|
||||
// defaultErrorHandler = false;
|
||||
|
||||
// see http://www.antlr2.org/doc/options.html
|
||||
}
|
||||
{
|
||||
// additional methods and members
|
||||
|
||||
public:
|
||||
|
||||
std::ostream *dbg;
|
||||
IfconfigImporter *importer;
|
||||
|
||||
/// Parser error-reporting function can be overridden in subclass
|
||||
virtual void reportError(const ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex)
|
||||
{
|
||||
importer->addMessageToLog("Parser error: " + ex.toString());
|
||||
std::cerr << ex.toString() << std::endl;
|
||||
}
|
||||
|
||||
/// Parser error-reporting function can be overridden in subclass
|
||||
virtual void reportError(const ANTLR_USE_NAMESPACE(std)string& s)
|
||||
{
|
||||
importer->addMessageToLog("Parser error: " + s);
|
||||
std::cerr << s << std::endl;
|
||||
}
|
||||
|
||||
/// Parser warning-reporting function can be overridden in subclass
|
||||
virtual void reportWarning(const ANTLR_USE_NAMESPACE(std)string& s)
|
||||
{
|
||||
importer->addMessageToLog("Parser warning: " + s);
|
||||
std::cerr << s << std::endl;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
cfgfile
|
||||
:
|
||||
(
|
||||
comment
|
||||
|
|
||||
interface_line
|
||||
|
|
||||
hwaddr_line
|
||||
|
|
||||
inet_address
|
||||
|
|
||||
inet6_address
|
||||
|
|
||||
groups
|
||||
|
|
||||
unknown_line
|
||||
|
|
||||
NEWLINE
|
||||
|
|
||||
DOUBLE_NEWLINE
|
||||
)*
|
||||
;
|
||||
|
||||
//****************************************************************
|
||||
comment
|
||||
: LINE_COMMENT ;
|
||||
|
||||
//****************************************************************
|
||||
unknown_line
|
||||
:
|
||||
(
|
||||
PRIORITY
|
||||
|
|
||||
MEDIA
|
||||
|
|
||||
STATUS
|
||||
|
|
||||
WORD
|
||||
)
|
||||
{
|
||||
consumeUntil(NEWLINE);
|
||||
}
|
||||
;
|
||||
|
||||
|
||||
//****************************************************************
|
||||
//
|
||||
|
||||
// lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33200
|
||||
// vic0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
||||
// enc0: flags=0<> mtu 1536
|
||||
//
|
||||
interface_line { InterfaceSpec is; }
|
||||
:
|
||||
in:WORD COLON FLAGS EQUAL INT_CONST
|
||||
{
|
||||
// interface name and status
|
||||
is.name = in->getText();
|
||||
importer->newInterface(is);
|
||||
consumeUntil(NEWLINE);
|
||||
}
|
||||
;
|
||||
|
||||
//****************************************************************
|
||||
|
||||
hwaddr_line
|
||||
:
|
||||
LLADDR addr:MAC_ADDRESS
|
||||
{
|
||||
importer->HwAddressForCurrentInterface(addr->getText());
|
||||
}
|
||||
;
|
||||
|
||||
//****************************************************************
|
||||
//
|
||||
|
||||
// BSD: inet 10.3.14.81 netmask 0xffffff00 broadcast 10.3.14.255
|
||||
inet_address { AddressSpec as; }
|
||||
:
|
||||
INET addr:IPV4 NETMASK netm:HEX_CONST BROADCAST bcast:IPV4
|
||||
{
|
||||
as.at = AddressSpec::INTERFACE_CONFIGURATION;
|
||||
as.address = addr->getText();
|
||||
as.netmask = netm->getText();
|
||||
as.broadcast = bcast->getText();
|
||||
importer->inetConfigurationForCurrentInterface(as);
|
||||
}
|
||||
;
|
||||
|
||||
//****************************************************************
|
||||
|
||||
// BSD: inet6 fe80::20c:29ff:fe3f:ac3c%vic0 prefixlen 64 scopeid 0x1
|
||||
inet6_address { AddressSpec as; }
|
||||
:
|
||||
INET6 addr:IPV6 PERCENT WORD PREFIXLEN netm:INT_CONST SCOPEID HEX_CONST
|
||||
{
|
||||
as.at = AddressSpec::INTERFACE_CONFIGURATION;
|
||||
as.address = addr->getText();
|
||||
as.netmask = netm->getText();
|
||||
importer->inet6ConfigurationForCurrentInterface(as);
|
||||
}
|
||||
;
|
||||
|
||||
//****************************************************************
|
||||
groups
|
||||
:
|
||||
GROUPS COLON groups_list NEWLINE
|
||||
;
|
||||
|
||||
groups_list
|
||||
:
|
||||
WORD { importer->addGroupToCurrentInterface(LT(0)->getText()); }
|
||||
(
|
||||
WORD { importer->addGroupToCurrentInterface(LT(0)->getText()); }
|
||||
)*
|
||||
;
|
||||
|
||||
//****************************************************************
|
||||
|
||||
class IfconfigBSDCfgLexer extends Lexer;
|
||||
options
|
||||
{
|
||||
k = 3;
|
||||
// ASCII only
|
||||
charVocabulary = '\3'..'\377';
|
||||
}
|
||||
|
||||
tokens
|
||||
{
|
||||
INET = "inet";
|
||||
INET6 = "inet6";
|
||||
|
||||
FLAGS = "flags";
|
||||
LINK = "Link";
|
||||
GLOBAL = "Global";
|
||||
HOST = "Host";
|
||||
|
||||
ADDR = "addr";
|
||||
BCAST = "Bcast";
|
||||
P_T_P = "P-t-P";
|
||||
|
||||
MASK = "Mask";
|
||||
|
||||
BROADCAST = "broadcast";
|
||||
NETMASK = "netmask";
|
||||
|
||||
PREFIXLEN = "prefixlen";
|
||||
SCOPEID = "scopeid";
|
||||
|
||||
SCOPE = "Scope";
|
||||
|
||||
GROUPS = "groups";
|
||||
|
||||
MTU = "mtu";
|
||||
|
||||
ENCAP = "encap";
|
||||
|
||||
LOOPBACK = "Loopback";
|
||||
|
||||
UP = "UP";
|
||||
UPPER_BROADCAST = "BROADCAST";
|
||||
UPPER_POINTOPOINT = "POINTOPOINT";
|
||||
UPPER_LOOPBACK = "LOOPBACK";
|
||||
UPPER_NOARP = "NOARP";
|
||||
UPPER_RUNNING = "RUNNING";
|
||||
|
||||
RX = "RX";
|
||||
TX = "TX";
|
||||
COLLISIONS = "collisions";
|
||||
INTERRUPT = "Interrupt";
|
||||
|
||||
PRIORITY = "priority";
|
||||
MEDIA = "media";
|
||||
STATUS = "status";
|
||||
HWADDR = "HWaddr";
|
||||
LLADR = "lladdr";
|
||||
}
|
||||
|
||||
LINE_COMMENT : "#" (~('\r' | '\n'))* NEWLINE ;
|
||||
|
||||
Whitespace : ( '\003'..'\010' | '\t' | '\013' | '\f' | '\016'.. '\037' | '\177'..'\377' | ' ' )
|
||||
{ $setType(ANTLR_USE_NAMESPACE(antlr)Token::SKIP); } ;
|
||||
|
||||
|
||||
|
||||
|
||||
protected
|
||||
INT_CONST:;
|
||||
|
||||
protected
|
||||
HEX_CONST:;
|
||||
|
||||
protected
|
||||
NUMBER:;
|
||||
|
||||
protected
|
||||
NEG_INT_CONST:;
|
||||
|
||||
protected
|
||||
COLON : ;
|
||||
|
||||
protected
|
||||
HEX_DIGIT : ('0'..'9'|'a'..'f'|'A'..'F') ;
|
||||
|
||||
protected
|
||||
DIGIT : '0'..'9' ;
|
||||
|
||||
protected
|
||||
NUM_3DIGIT: ('0'..'9') (('0'..'9') ('0'..'9')?)? ;
|
||||
|
||||
protected
|
||||
NUM_HEX_4DIGIT: HEX_DIGIT ((HEX_DIGIT) ((HEX_DIGIT) (HEX_DIGIT)?)?)? ;
|
||||
|
||||
protected
|
||||
MAC_ADDRESS : ;
|
||||
|
||||
NUMBER_ADDRESS_OR_WORD
|
||||
options {
|
||||
testLiterals = true;
|
||||
}
|
||||
:
|
||||
( NUM_3DIGIT '.' NUM_3DIGIT '.' ) =>
|
||||
(NUM_3DIGIT '.' NUM_3DIGIT '.' NUM_3DIGIT '.' NUM_3DIGIT)
|
||||
{ $setType(IPV4); }
|
||||
|
||||
//
|
||||
// MAC adress rule - exactly 6 COLON separated ints
|
||||
//
|
||||
| (NUM_HEX_4DIGIT ':' NUM_HEX_4DIGIT ':'
|
||||
NUM_HEX_4DIGIT ':' NUM_HEX_4DIGIT ':'
|
||||
NUM_HEX_4DIGIT ':' NUM_HEX_4DIGIT ~(':') )=>
|
||||
(
|
||||
NUM_HEX_4DIGIT ':' NUM_HEX_4DIGIT ':'
|
||||
NUM_HEX_4DIGIT ':' NUM_HEX_4DIGIT ':'
|
||||
NUM_HEX_4DIGIT ':' NUM_HEX_4DIGIT
|
||||
) { $setType(MAC_ADDRESS); }
|
||||
|
||||
// IPv6 RULE
|
||||
| (NUM_HEX_4DIGIT ':')=>
|
||||
(
|
||||
((NUM_HEX_4DIGIT ':')+ ':')=>
|
||||
(
|
||||
(NUM_HEX_4DIGIT ':')+ ':'
|
||||
(NUM_HEX_4DIGIT (':' NUM_HEX_4DIGIT)*)?
|
||||
) { $setType(IPV6); }
|
||||
|
||||
| NUM_HEX_4DIGIT (':' NUM_HEX_4DIGIT)+
|
||||
{ $setType(IPV6); }
|
||||
|
||||
) { $setType(IPV6); }
|
||||
|
||||
| (':' ':' NUM_HEX_4DIGIT)=>
|
||||
':' ':' NUM_HEX_4DIGIT (':' NUM_HEX_4DIGIT)* { $setType(IPV6); }
|
||||
|
||||
| ':' ':' { $setType(IPV6); }
|
||||
|
||||
| ':' { $setType(COLON); }
|
||||
|
||||
| ( (DIGIT)+ '.' (DIGIT)+ )=> ( (DIGIT)+ '.' (DIGIT)+ )
|
||||
{ $setType(NUMBER); }
|
||||
|
||||
| ( DIGIT )+ { $setType(INT_CONST); }
|
||||
|
||||
| '0' ('x' | 'X') HEX_DIGIT ( HEX_DIGIT )* { $setType(HEX_CONST); }
|
||||
|
||||
// making sure ',' '(' ')' '=' '<' '>' '+' are not part of WORD
|
||||
// double quote " should be included, without it STRING does not match
|
||||
|
||||
| ( 'a'..'z' | 'A'..'Z' )
|
||||
( '"' | '$' | '%' | '&' | '-' | '0'..'9' | ';' |
|
||||
'?' | '@' | 'A'..'Z' | '\\' | '^' | '_' | '`' | 'a'..'z' )*
|
||||
{ $setType(WORD); }
|
||||
;
|
||||
|
||||
|
||||
NEWLINE : ( "\r\n" | '\r' | '\n' ) { newline(); } ;
|
||||
|
||||
// DOUBLE_NEWLINE : NEWLINE NEWLINE ;
|
||||
|
||||
// protected
|
||||
// NEWLINE :;
|
||||
|
||||
// protected
|
||||
// DOUBLE_NEWLINE : ;
|
||||
|
||||
// NEWLINES
|
||||
// :
|
||||
// ( ( "\r\n" | '\r' | '\n' ) ~('\r' | '\n') ) =>
|
||||
// ( "\r\n" | '\r' | '\n' ) { $setType(NEWLINE); }
|
||||
// |
|
||||
// ( "\r\n\r\n" | "\r\r" | "\n\n" ) { $setType(DOUBLE_NEWLINE); }
|
||||
// ;
|
||||
|
||||
PERCENT : '%' ;
|
||||
AMPERSAND : '&' ;
|
||||
STAR : '*' ;
|
||||
MINUS : '-' ;
|
||||
DOT : '.' ;
|
||||
SLASH : '/' ;
|
||||
|
||||
EQUAL : '=';
|
||||
|
||||
QUESTION : '?' ;
|
||||
|
||||
OPENING_PAREN : '(' ;
|
||||
CLOSING_PAREN : ')' ;
|
||||
|
||||
OPENING_SQUARE : '[' ;
|
||||
CLOSING_SQUARE : ']' ;
|
||||
|
||||
OPENING_BRACE : '{' ;
|
||||
CLOSING_BRACE : '}' ;
|
||||
|
||||
LESS_THAN : '<' ;
|
||||
GREATER_THAN : '>' ;
|
||||
|
||||
@ -65,7 +65,7 @@ options
|
||||
}
|
||||
|
||||
|
||||
class IfconfigCfgParser extends Parser;
|
||||
class IfconfigLinuxCfgParser extends Parser;
|
||||
options
|
||||
{
|
||||
k = 2;
|
||||
@ -115,27 +115,19 @@ cfgfile
|
||||
(
|
||||
comment
|
||||
|
|
||||
bsd_interface_line
|
||||
interface_line
|
||||
|
|
||||
linux_interface_line
|
||||
hwaddr_line
|
||||
|
|
||||
bsd_hwaddr_line
|
||||
inet_address
|
||||
|
|
||||
linux_hwaddr_line
|
||||
|
|
||||
bsd_inet_address
|
||||
|
|
||||
linux_inet_address
|
||||
|
|
||||
bsd_inet6_address
|
||||
|
|
||||
linux_inet6_address
|
||||
inet6_address
|
||||
|
|
||||
groups
|
||||
|
|
||||
linux_interface_flags
|
||||
interface_flags
|
||||
|
|
||||
linux_interface_statistics
|
||||
interface_statistics
|
||||
|
|
||||
unknown_line
|
||||
|
|
||||
@ -166,7 +158,7 @@ unknown_line
|
||||
}
|
||||
;
|
||||
|
||||
linux_interface_flags
|
||||
interface_flags
|
||||
:
|
||||
(
|
||||
UP
|
||||
@ -188,10 +180,10 @@ linux_interface_flags
|
||||
}
|
||||
;
|
||||
|
||||
linux_interface_statistics
|
||||
interface_statistics
|
||||
:
|
||||
(
|
||||
( COLLISIONS COLON )
|
||||
( ( INTERRUPT | COLLISIONS ) COLON )
|
||||
|
|
||||
RX
|
||||
|
|
||||
@ -206,47 +198,30 @@ linux_interface_statistics
|
||||
//****************************************************************
|
||||
//
|
||||
|
||||
// lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33200
|
||||
// vic0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
||||
// enc0: flags=0<> mtu 1536
|
||||
//
|
||||
bsd_interface_line { InterfaceSpec is; }
|
||||
:
|
||||
in:WORD COLON FLAGS EQUAL INT_CONST
|
||||
{
|
||||
// interface name and status
|
||||
is.name = in->getText();
|
||||
importer->newInterface(is);
|
||||
consumeUntil(NEWLINE);
|
||||
}
|
||||
;
|
||||
|
||||
// lo Link encap:Local Loopback
|
||||
// eth0 Link encap:Ethernet HWaddr 00:0c:29:5f:12:cb
|
||||
// he-ipv6 Link encap:IPv6-in-IPv4
|
||||
// sit0 Link encap:IPv6-in-IPv4
|
||||
//
|
||||
linux_interface_line { InterfaceSpec is; }
|
||||
interface_line { InterfaceSpec is; }
|
||||
:
|
||||
in:WORD LINK ENCAP COLON WORD
|
||||
in1:WORD
|
||||
( DOT in2:INT_CONST )?
|
||||
( COLON ( lbl1:WORD | lbl2:INT_CONST ) )?
|
||||
LINK ENCAP COLON WORD
|
||||
{
|
||||
// interface name and status
|
||||
is.name = in->getText();
|
||||
if (in2) is.name = in1->getText() + "." + in2->getText();
|
||||
else is.name = in1->getText();
|
||||
if (lbl1) is.label = lbl1->getText();
|
||||
if (lbl2) is.label = lbl2->getText();
|
||||
importer->newInterface(is);
|
||||
}
|
||||
;
|
||||
|
||||
//****************************************************************
|
||||
|
||||
bsd_hwaddr_line
|
||||
:
|
||||
LLADDR addr:MAC_ADDRESS
|
||||
{
|
||||
importer->HwAddressForCurrentInterface(addr->getText());
|
||||
}
|
||||
;
|
||||
|
||||
linux_hwaddr_line
|
||||
hwaddr_line
|
||||
:
|
||||
HWADDR addr:MAC_ADDRESS
|
||||
{
|
||||
@ -257,21 +232,8 @@ linux_hwaddr_line
|
||||
//****************************************************************
|
||||
//
|
||||
|
||||
// BSD: inet 10.3.14.81 netmask 0xffffff00 broadcast 10.3.14.255
|
||||
bsd_inet_address { AddressSpec as; }
|
||||
:
|
||||
INET addr:IPV4 NETMASK netm:HEX_CONST BROADCAST bcast:IPV4
|
||||
{
|
||||
as.at = AddressSpec::INTERFACE_CONFIGURATION;
|
||||
as.address = addr->getText();
|
||||
as.netmask = netm->getText();
|
||||
as.broadcast = bcast->getText();
|
||||
importer->inetConfigurationForCurrentInterface(as);
|
||||
}
|
||||
;
|
||||
|
||||
// Linux: inet addr:10.10.11.11 Bcast:10.10.11.255 Mask:255.255.255.0
|
||||
linux_inet_address { AddressSpec as; }
|
||||
inet_address { AddressSpec as; }
|
||||
:
|
||||
INET ADDR COLON
|
||||
addr:IPV4
|
||||
@ -298,20 +260,8 @@ linux_inet_address { AddressSpec as; }
|
||||
|
||||
//****************************************************************
|
||||
|
||||
// BSD: inet6 fe80::20c:29ff:fe3f:ac3c%vic0 prefixlen 64 scopeid 0x1
|
||||
bsd_inet6_address { AddressSpec as; }
|
||||
:
|
||||
INET6 addr:IPV6 PERCENT WORD PREFIXLEN netm:INT_CONST SCOPEID HEX_CONST
|
||||
{
|
||||
as.at = AddressSpec::INTERFACE_CONFIGURATION;
|
||||
as.address = addr->getText();
|
||||
as.netmask = netm->getText();
|
||||
importer->inet6ConfigurationForCurrentInterface(as);
|
||||
}
|
||||
;
|
||||
|
||||
// Linux: inet6 addr: fe80::20c:29ff:fe5f:12cb/64 Scope:Link
|
||||
linux_inet6_address { AddressSpec as; }
|
||||
inet6_address { AddressSpec as; }
|
||||
:
|
||||
INET6 ADDR COLON addr:IPV6 SLASH netm:INT_CONST SCOPE COLON (HOST | LINK | GLOBAL | INT_CONST)
|
||||
{
|
||||
@ -339,7 +289,7 @@ groups_list
|
||||
|
||||
//****************************************************************
|
||||
|
||||
class IfconfigCfgLexer extends Lexer;
|
||||
class IfconfigLinuxCfgLexer extends Lexer;
|
||||
options
|
||||
{
|
||||
k = 3;
|
||||
@ -389,6 +339,7 @@ tokens
|
||||
RX = "RX";
|
||||
TX = "TX";
|
||||
COLLISIONS = "collisions";
|
||||
INTERRUPT = "Interrupt";
|
||||
|
||||
PRIORITY = "priority";
|
||||
MEDIA = "media";
|
||||
@ -13,8 +13,10 @@ SOURCES = IOSCfgLexer.cpp \
|
||||
PIXCfgParser.cpp \
|
||||
PFCfgLexer.cpp \
|
||||
PFCfgParser.cpp \
|
||||
IfconfigCfgLexer.cpp \
|
||||
IfconfigCfgParser.cpp
|
||||
IfconfigLinuxCfgLexer.cpp \
|
||||
IfconfigLinuxCfgParser.cpp \
|
||||
IfconfigBSDCfgLexer.cpp \
|
||||
IfconfigBSDCfgParser.cpp
|
||||
|
||||
HEADERS = ../../config.h \
|
||||
IOSCfgLexer.hpp \
|
||||
@ -29,9 +31,12 @@ HEADERS = ../../config.h \
|
||||
PFCfgLexer.hpp \
|
||||
PFCfgParser.hpp \
|
||||
PFCfgParserTokenTypes.hpp \
|
||||
IfconfigCfgLexer.hpp \
|
||||
IfconfigCfgParser.hpp \
|
||||
IfconfigCfgParserTokenTypes.hpp
|
||||
IfconfigLinuxCfgLexer.hpp \
|
||||
IfconfigLinuxCfgParser.hpp \
|
||||
IfconfigLinuxCfgParserTokenTypes.hpp \
|
||||
IfconfigBSDCfgLexer.hpp \
|
||||
IfconfigBSDCfgParser.hpp \
|
||||
IfconfigBSDCfgParserTokenTypes.hpp
|
||||
|
||||
CONFIG += staticlib
|
||||
|
||||
|
||||
@ -119,7 +119,8 @@ void IfconfigImporterTest::linuxIfconfigTest()
|
||||
std::istringstream instream(
|
||||
openTestFile("test_data/linux_ifconfig.test"));
|
||||
|
||||
IfconfigImporter* imp = new IfconfigImporter(lib, instream, logger, "test_fw");
|
||||
IfconfigImporter* imp = new IfconfigImporter(
|
||||
lib, instream, logger, "linux24", "test_fw");
|
||||
CPPUNIT_ASSERT_NO_THROW( imp->run() );
|
||||
imp->finalize();
|
||||
|
||||
@ -140,7 +141,8 @@ void IfconfigImporterTest::bsdIfconfigTest()
|
||||
std::istringstream instream(
|
||||
openTestFile("test_data/bsd_ifconfig.test"));
|
||||
|
||||
IfconfigImporter* imp = new IfconfigImporter(lib, instream, logger, "test_fw");
|
||||
IfconfigImporter* imp = new IfconfigImporter(
|
||||
lib, instream, logger, "openbsd", "test_fw");
|
||||
CPPUNIT_ASSERT_NO_THROW( imp->run() );
|
||||
imp->finalize();
|
||||
|
||||
|
||||
@ -8,6 +8,26 @@ eth0 Link encap:Ethernet HWaddr 00:0d:61:42:3e:87
|
||||
collisions:0 txqueuelen:1000
|
||||
RX bytes:1900107617 (1.9 GB) TX bytes:3300213065 (3.3 GB)
|
||||
|
||||
eth1 Link encap:Ethernet HWaddr 00:0c:29:1e:dc:b4
|
||||
inet addr:10.1.1.1 Bcast:10.1.1.255 Mask:255.255.255.0
|
||||
inet6 addr: fe80::20c:29ff:fe1e:dcb4/64 Scope:Link
|
||||
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
|
||||
RX packets:23 errors:0 dropped:0 overruns:0 frame:0
|
||||
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
|
||||
collisions:0 txqueuelen:1000
|
||||
RX bytes:1380 (1.3 KB) TX bytes:468 (468.0 B)
|
||||
Interrupt:19 Base address:0x2080
|
||||
|
||||
eth1:1 Link encap:Ethernet HWaddr 00:0c:29:1e:dc:b4
|
||||
inet addr:192.168.123.123 Bcast:0.0.0.0 Mask:255.255.255.0
|
||||
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
|
||||
Interrupt:19 Base address:0x2080
|
||||
|
||||
eth1:foo Link encap:Ethernet HWaddr 00:0c:29:1e:dc:b4
|
||||
inet addr:192.168.123.124 Bcast:0.0.0.0 Mask:255.255.255.0
|
||||
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
|
||||
Interrupt:19 Base address:0x2080
|
||||
|
||||
he-ipv6 Link encap:IPv6-in-IPv4
|
||||
inet6 addr: 2001:db8:1f0e:162::2/64 Scope:Global
|
||||
inet6 addr: fe80::4655:afaa/128 Scope:Link
|
||||
@ -40,3 +60,40 @@ ppp0 Link encap:Point-to-Point Protocol
|
||||
TX packets:397 errors:0 dropped:0 overruns:0 carrier:0
|
||||
collisions:0 txqueuelen:3
|
||||
RX bytes:253765 (247.8 Kb) TX bytes:62621 (61.1 Kb)
|
||||
|
||||
eth1.100 Link encap:Ethernet HWaddr 00:0c:29:1e:dc:b4
|
||||
BROADCAST MULTICAST MTU:1500 Metric:1
|
||||
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
|
||||
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
|
||||
collisions:0 txqueuelen:0
|
||||
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
|
||||
|
||||
eth1.100:1 Link encap:Ethernet HWaddr 00:0c:29:1e:dc:b4
|
||||
inet addr:192.168.222.1 Bcast:0.0.0.0 Mask:255.255.255.0
|
||||
BROADCAST MULTICAST MTU:1500 Metric:1
|
||||
|
||||
eth1.100:foo Link encap:Ethernet HWaddr 00:0c:29:1e:dc:b4
|
||||
inet addr:192.168.222.2 Bcast:0.0.0.0 Mask:255.255.255.0
|
||||
BROADCAST MULTICAST MTU:1500 Metric:1
|
||||
|
||||
eth1.0100 Link encap:Ethernet HWaddr 00:0c:29:1e:dc:b4
|
||||
BROADCAST MULTICAST MTU:1500 Metric:1
|
||||
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
|
||||
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
|
||||
collisions:0 txqueuelen:0
|
||||
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
|
||||
|
||||
vlan100 Link encap:Ethernet HWaddr 00:0c:29:1e:dc:b4
|
||||
BROADCAST MULTICAST MTU:1500 Metric:1
|
||||
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
|
||||
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
|
||||
collisions:0 txqueuelen:0
|
||||
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
|
||||
|
||||
vlan0100 Link encap:Ethernet HWaddr 00:0c:29:1e:dc:b4
|
||||
BROADCAST MULTICAST MTU:1500 Metric:1
|
||||
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
|
||||
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
|
||||
collisions:0 txqueuelen:0
|
||||
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user