1 /* $ANTLR 2.7.7 (20100319): "ifconfig_bsd.g" -> "IfconfigBSDCfgParser.cpp"$ */
2 #line 43 "ifconfig_bsd.g"
3
4 // gets inserted before the antlr generated includes in the cpp
5 // file
6
7 #line 8 "IfconfigBSDCfgParser.cpp"
8 #include "IfconfigBSDCfgParser.hpp"
9 #include <antlr/NoViableAltException.hpp>
10 #include <antlr/SemanticException.hpp>
11 #include <antlr/ASTFactory.hpp>
12 #line 49 "ifconfig_bsd.g"
13
14 // gets inserted after the antlr generated includes in the cpp
15 // file
16 #include <antlr/Token.hpp>
17 #include <antlr/TokenBuffer.hpp>
18
19 #line 20 "IfconfigBSDCfgParser.cpp"
20 #line 1 "ifconfig_bsd.g"
21 #line 22 "IfconfigBSDCfgParser.cpp"
IfconfigBSDCfgParser(ANTLR_USE_NAMESPACE (antlr)TokenBuffer & tokenBuf,int k)22 IfconfigBSDCfgParser::IfconfigBSDCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf, int k)
23 : ANTLR_USE_NAMESPACE(antlr)LLkParser(tokenBuf,k)
24 {
25 }
26
IfconfigBSDCfgParser(ANTLR_USE_NAMESPACE (antlr)TokenBuffer & tokenBuf)27 IfconfigBSDCfgParser::IfconfigBSDCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf)
28 : ANTLR_USE_NAMESPACE(antlr)LLkParser(tokenBuf,2)
29 {
30 }
31
IfconfigBSDCfgParser(ANTLR_USE_NAMESPACE (antlr)TokenStream & lexer,int k)32 IfconfigBSDCfgParser::IfconfigBSDCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer, int k)
33 : ANTLR_USE_NAMESPACE(antlr)LLkParser(lexer,k)
34 {
35 }
36
IfconfigBSDCfgParser(ANTLR_USE_NAMESPACE (antlr)TokenStream & lexer)37 IfconfigBSDCfgParser::IfconfigBSDCfgParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer)
38 : ANTLR_USE_NAMESPACE(antlr)LLkParser(lexer,2)
39 {
40 }
41
IfconfigBSDCfgParser(const ANTLR_USE_NAMESPACE (antlr)ParserSharedInputState & state)42 IfconfigBSDCfgParser::IfconfigBSDCfgParser(const ANTLR_USE_NAMESPACE(antlr)ParserSharedInputState& state)
43 : ANTLR_USE_NAMESPACE(antlr)LLkParser(state,2)
44 {
45 }
46
cfgfile()47 void IfconfigBSDCfgParser::cfgfile() {
48 Tracer traceInOut(this, "cfgfile");
49
50 try { // for error handling
51 { // ( ... )*
52 for (;;) {
53 switch ( LA(1)) {
54 case LINE_COMMENT:
55 {
56 comment();
57 break;
58 }
59 case LLADDR:
60 {
61 hwaddr_line();
62 break;
63 }
64 case INET:
65 {
66 inet_address();
67 break;
68 }
69 case INET6:
70 {
71 inet6_address();
72 break;
73 }
74 case GROUPS:
75 {
76 groups();
77 break;
78 }
79 case NEWLINE:
80 {
81 match(NEWLINE);
82 break;
83 }
84 case DOUBLE_NEWLINE:
85 {
86 match(DOUBLE_NEWLINE);
87 break;
88 }
89 default:
90 if ((LA(1) == WORD) && (LA(2) == COLON)) {
91 interface_line();
92 }
93 else if (((LA(1) >= PRIORITY && LA(1) <= WORD)) && (_tokenSet_0.member(LA(2)))) {
94 unknown_line();
95 }
96 else {
97 goto _loop3;
98 }
99 }
100 }
101 _loop3:;
102 } // ( ... )*
103 }
104 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
105 reportError(ex);
106 recover(ex,_tokenSet_1);
107 }
108 }
109
comment()110 void IfconfigBSDCfgParser::comment() {
111 Tracer traceInOut(this, "comment");
112
113 try { // for error handling
114 match(LINE_COMMENT);
115 }
116 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
117 reportError(ex);
118 recover(ex,_tokenSet_0);
119 }
120 }
121
interface_line()122 void IfconfigBSDCfgParser::interface_line() {
123 Tracer traceInOut(this, "interface_line");
124 ANTLR_USE_NAMESPACE(antlr)RefToken in = ANTLR_USE_NAMESPACE(antlr)nullToken;
125 #line 165 "ifconfig_bsd.g"
126 InterfaceSpec is;
127 #line 128 "IfconfigBSDCfgParser.cpp"
128
129 try { // for error handling
130 in = LT(1);
131 match(WORD);
132 match(COLON);
133 match(FLAGS);
134 match(EQUAL);
135 match(INT_CONST);
136 #line 168 "ifconfig_bsd.g"
137
138 // interface name and status
139 is.name = in->getText();
140 importer->newInterface(is);
141 consumeUntil(NEWLINE);
142
143 #line 144 "IfconfigBSDCfgParser.cpp"
144 }
145 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
146 reportError(ex);
147 recover(ex,_tokenSet_0);
148 }
149 }
150
hwaddr_line()151 void IfconfigBSDCfgParser::hwaddr_line() {
152 Tracer traceInOut(this, "hwaddr_line");
153 ANTLR_USE_NAMESPACE(antlr)RefToken addr = ANTLR_USE_NAMESPACE(antlr)nullToken;
154
155 try { // for error handling
156 match(LLADDR);
157 addr = LT(1);
158 match(MAC_ADDRESS);
159 #line 181 "ifconfig_bsd.g"
160
161 importer->HwAddressForCurrentInterface(addr->getText());
162
163 #line 164 "IfconfigBSDCfgParser.cpp"
164 }
165 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
166 reportError(ex);
167 recover(ex,_tokenSet_0);
168 }
169 }
170
inet_address()171 void IfconfigBSDCfgParser::inet_address() {
172 Tracer traceInOut(this, "inet_address");
173 ANTLR_USE_NAMESPACE(antlr)RefToken addr = ANTLR_USE_NAMESPACE(antlr)nullToken;
174 ANTLR_USE_NAMESPACE(antlr)RefToken netm = ANTLR_USE_NAMESPACE(antlr)nullToken;
175 ANTLR_USE_NAMESPACE(antlr)RefToken bcast = ANTLR_USE_NAMESPACE(antlr)nullToken;
176 #line 190 "ifconfig_bsd.g"
177 AddressSpec as;
178 #line 179 "IfconfigBSDCfgParser.cpp"
179
180 try { // for error handling
181 match(INET);
182 addr = LT(1);
183 match(IPV4);
184 match(NETMASK);
185 netm = LT(1);
186 match(HEX_CONST);
187 match(BROADCAST);
188 bcast = LT(1);
189 match(IPV4);
190 #line 193 "ifconfig_bsd.g"
191
192 as.at = AddressSpec::INTERFACE_CONFIGURATION;
193 as.address = addr->getText();
194 as.netmask = netm->getText();
195 as.broadcast = bcast->getText();
196 importer->inetConfigurationForCurrentInterface(as);
197
198 #line 199 "IfconfigBSDCfgParser.cpp"
199 }
200 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
201 reportError(ex);
202 recover(ex,_tokenSet_0);
203 }
204 }
205
inet6_address()206 void IfconfigBSDCfgParser::inet6_address() {
207 Tracer traceInOut(this, "inet6_address");
208 ANTLR_USE_NAMESPACE(antlr)RefToken addr = ANTLR_USE_NAMESPACE(antlr)nullToken;
209 ANTLR_USE_NAMESPACE(antlr)RefToken netm = ANTLR_USE_NAMESPACE(antlr)nullToken;
210 #line 205 "ifconfig_bsd.g"
211 AddressSpec as;
212 #line 213 "IfconfigBSDCfgParser.cpp"
213
214 try { // for error handling
215 match(INET6);
216 addr = LT(1);
217 match(IPV6);
218 match(PERCENT);
219 match(WORD);
220 match(PREFIXLEN);
221 netm = LT(1);
222 match(INT_CONST);
223 match(SCOPEID);
224 match(HEX_CONST);
225 #line 208 "ifconfig_bsd.g"
226
227 as.at = AddressSpec::INTERFACE_CONFIGURATION;
228 as.address = addr->getText();
229 as.netmask = netm->getText();
230 importer->inet6ConfigurationForCurrentInterface(as);
231
232 #line 233 "IfconfigBSDCfgParser.cpp"
233 }
234 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
235 reportError(ex);
236 recover(ex,_tokenSet_0);
237 }
238 }
239
groups()240 void IfconfigBSDCfgParser::groups() {
241 Tracer traceInOut(this, "groups");
242
243 try { // for error handling
244 match(GROUPS);
245 match(COLON);
246 groups_list();
247 match(NEWLINE);
248 }
249 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
250 reportError(ex);
251 recover(ex,_tokenSet_0);
252 }
253 }
254
unknown_line()255 void IfconfigBSDCfgParser::unknown_line() {
256 Tracer traceInOut(this, "unknown_line");
257
258 try { // for error handling
259 {
260 switch ( LA(1)) {
261 case PRIORITY:
262 {
263 match(PRIORITY);
264 break;
265 }
266 case MEDIA:
267 {
268 match(MEDIA);
269 break;
270 }
271 case STATUS:
272 {
273 match(STATUS);
274 break;
275 }
276 case WORD:
277 {
278 match(WORD);
279 break;
280 }
281 default:
282 {
283 throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
284 }
285 }
286 }
287 #line 152 "ifconfig_bsd.g"
288
289 consumeUntil(NEWLINE);
290
291 #line 292 "IfconfigBSDCfgParser.cpp"
292 }
293 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
294 reportError(ex);
295 recover(ex,_tokenSet_0);
296 }
297 }
298
groups_list()299 void IfconfigBSDCfgParser::groups_list() {
300 Tracer traceInOut(this, "groups_list");
301
302 try { // for error handling
303 match(WORD);
304 #line 224 "ifconfig_bsd.g"
305 importer->addGroupToCurrentInterface(LT(0)->getText());
306 #line 307 "IfconfigBSDCfgParser.cpp"
307 { // ( ... )*
308 for (;;) {
309 if ((LA(1) == WORD)) {
310 match(WORD);
311 #line 226 "ifconfig_bsd.g"
312 importer->addGroupToCurrentInterface(LT(0)->getText());
313 #line 314 "IfconfigBSDCfgParser.cpp"
314 }
315 else {
316 goto _loop14;
317 }
318
319 }
320 _loop14:;
321 } // ( ... )*
322 }
323 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
324 reportError(ex);
325 recover(ex,_tokenSet_2);
326 }
327 }
328
initializeASTFactory(ANTLR_USE_NAMESPACE (antlr)ASTFactory &)329 void IfconfigBSDCfgParser::initializeASTFactory( ANTLR_USE_NAMESPACE(antlr)ASTFactory& )
330 {
331 }
332 const char* IfconfigBSDCfgParser::tokenNames[] = {
333 "<0>",
334 "EOF",
335 "<2>",
336 "NULL_TREE_LOOKAHEAD",
337 "NEWLINE",
338 "DOUBLE_NEWLINE",
339 "LINE_COMMENT",
340 "\"priority\"",
341 "\"media\"",
342 "\"status\"",
343 "WORD",
344 "COLON",
345 "\"flags\"",
346 "EQUAL",
347 "INT_CONST",
348 "LLADDR",
349 "MAC_ADDRESS",
350 "\"inet\"",
351 "IPV4",
352 "\"netmask\"",
353 "HEX_CONST",
354 "\"broadcast\"",
355 "\"inet6\"",
356 "IPV6",
357 "PERCENT",
358 "\"prefixlen\"",
359 "\"scopeid\"",
360 "\"groups\"",
361 "\"Link\"",
362 "\"Global\"",
363 "\"Host\"",
364 "\"addr\"",
365 "\"Bcast\"",
366 "\"P-t-P\"",
367 "\"Mask\"",
368 "\"Scope\"",
369 "\"mtu\"",
370 "\"encap\"",
371 "\"Loopback\"",
372 "\"UP\"",
373 "\"BROADCAST\"",
374 "\"POINTOPOINT\"",
375 "\"LOOPBACK\"",
376 "\"NOARP\"",
377 "\"RUNNING\"",
378 "\"RX\"",
379 "\"TX\"",
380 "\"collisions\"",
381 "\"Interrupt\"",
382 "\"HWaddr\"",
383 "\"lladdr\"",
384 "Whitespace",
385 "NUMBER",
386 "NEG_INT_CONST",
387 "HEX_DIGIT",
388 "DIGIT",
389 "NUM_3DIGIT",
390 "NUM_HEX_4DIGIT",
391 "NUMBER_ADDRESS_OR_WORD",
392 "AMPERSAND",
393 "STAR",
394 "MINUS",
395 "DOT",
396 "SLASH",
397 "QUESTION",
398 "OPENING_PAREN",
399 "CLOSING_PAREN",
400 "OPENING_SQUARE",
401 "CLOSING_SQUARE",
402 "OPENING_BRACE",
403 "CLOSING_BRACE",
404 "LESS_THAN",
405 "GREATER_THAN",
406 0
407 };
408
409 const unsigned long IfconfigBSDCfgParser::_tokenSet_0_data_[] = { 138577906UL, 0UL, 0UL, 0UL };
410 // EOF NEWLINE DOUBLE_NEWLINE LINE_COMMENT "priority" "media" "status"
411 // WORD LLADDR "inet" "inet6" "groups"
412 const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigBSDCfgParser::_tokenSet_0(_tokenSet_0_data_,4);
413 const unsigned long IfconfigBSDCfgParser::_tokenSet_1_data_[] = { 2UL, 0UL, 0UL, 0UL };
414 // EOF
415 const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigBSDCfgParser::_tokenSet_1(_tokenSet_1_data_,4);
416 const unsigned long IfconfigBSDCfgParser::_tokenSet_2_data_[] = { 16UL, 0UL, 0UL, 0UL };
417 // NEWLINE
418 const ANTLR_USE_NAMESPACE(antlr)BitSet IfconfigBSDCfgParser::_tokenSet_2(_tokenSet_2_data_,4);
419
420
421