Dibbler - a portable DHCPv6  1.0.2RC1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RelParser.h
Go to the documentation of this file.
1 #ifndef YY_RelParser_h_included
2 #define YY_RelParser_h_included
3 #define YY_USE_CLASS
4 
5 #line 1 "../bison++/bison.h"
6 /* before anything */
7 #ifdef c_plusplus
8  #ifndef __cplusplus
9  #define __cplusplus
10  #endif
11 #endif
12 
13 
14  #line 8 "../bison++/bison.h"
15 #line 3 "RelParser.y"
16 
17 #include <string.h>
18 #include <iostream>
19 #include <string>
20 #include <malloc.h>
21 #include "DHCPConst.h"
22 #include "SmartPtr.h"
23 #include "Container.h"
24 #include "RelParser.h"
25 #include "RelParsGlobalOpt.h"
26 #include "RelParsIfaceOpt.h"
27 #include "RelCfgIface.h"
28 #include "RelCfgMgr.h"
29 #include "OptVendorData.h"
30 #include "OptDUID.h"
31 #include "DUID.h"
32 #include "Logger.h"
33 #include "Portable.h"
34 
35 using namespace std;
36 
37 #define YY_USE_CLASS
38 #define YY_RelParser_MEMBERS FlexLexer * lex; \
39 TContainer< SPtr<TRelParsGlobalOpt> > ParserOptStack; /* list of parsed interfaces/IAs/addrs */ \
40 TContainer< SPtr<TRelCfgIface> > RelCfgIfaceLst; /* list of RelCfg interfaces */ \
41 TContainer< SPtr<TIPv6Addr> > PresentAddrLst; /* address list (used for DNS,NTP,etc.)*/ \
42 List(std::string) PresentStringLst; /* string list */ \
43 SPtr<TRelOptEcho> EchoOpt; /* echo request option */ \
44 /*method check whether interface with id=ifaceNr has been already declared */ \
45 bool CheckIsIface(int ifaceNr); \
46 /*method check whether interface with id=ifaceName has been already declared*/ \
47 bool CheckIsIface(string ifaceName); \
48 void StartIfaceDeclaration(); \
49 bool EndIfaceDeclaration(); \
50 TRelCfgMgr* CfgMgr; \
51 virtual ~RelParser();
52 #define YY_RelParser_CONSTRUCTOR_PARAM yyFlexLexer * lex
53 #define YY_RelParser_CONSTRUCTOR_CODE \
54  ParserOptStack.append(new TRelParsGlobalOpt()); \
55  this->lex = lex; \
56  yynerrs = 0; \
57  yychar = 0;
58 
59 #line 55 "RelParser.y"
60 typedef union
61 {
62  unsigned int ival;
63  char *strval;
64  char addrval[16];
65  struct SDuid
66  {
67  int length;
68  char* duid;
69  } duidval;
71 #define YY_RelParser_STYPE yy_RelParser_stype
72 
73 #line 21 "../bison++/bison.h"
74  /* %{ and %header{ and %union, during decl */
75 #ifndef YY_RelParser_COMPATIBILITY
76  #ifndef YY_USE_CLASS
77  #define YY_RelParser_COMPATIBILITY 1
78  #else
79  #define YY_RelParser_COMPATIBILITY 0
80  #endif
81 #endif
82 
83 #if YY_RelParser_COMPATIBILITY != 0
84 /* backward compatibility */
85  #ifdef YYLTYPE
86  #ifndef YY_RelParser_LTYPE
87  #define YY_RelParser_LTYPE YYLTYPE
88 /* WARNING obsolete !!! user defined YYLTYPE not reported into generated header */
89 /* use %define LTYPE */
90  #endif
91  #endif
92 /*#ifdef YYSTYPE*/
93  #ifndef YY_RelParser_STYPE
94  #define YY_RelParser_STYPE YYSTYPE
95  /* WARNING obsolete !!! user defined YYSTYPE not reported into generated header */
96  /* use %define STYPE */
97  #endif
98 /*#endif*/
99  #ifdef YYDEBUG
100  #ifndef YY_RelParser_DEBUG
101  #define YY_RelParser_DEBUG YYDEBUG
102  /* WARNING obsolete !!! user defined YYDEBUG not reported into generated header */
103  /* use %define DEBUG */
104  #endif
105  #endif
106  /* use goto to be compatible */
107  #ifndef YY_RelParser_USE_GOTO
108  #define YY_RelParser_USE_GOTO 1
109  #endif
110 #endif
111 
112 /* use no goto to be clean in C++ */
113 #ifndef YY_RelParser_USE_GOTO
114  #define YY_RelParser_USE_GOTO 0
115 #endif
116 
117 #ifndef YY_RelParser_PURE
118 
119  #line 65 "../bison++/bison.h"
120 
121 #line 65 "../bison++/bison.h"
122 /* YY_RelParser_PURE */
123 #endif
124 
125 
126  #line 68 "../bison++/bison.h"
127 
128 #line 68 "../bison++/bison.h"
129 /* prefix */
130 
131 #ifndef YY_RelParser_DEBUG
132 
133  #line 71 "../bison++/bison.h"
134 #define YY_RelParser_DEBUG 1
135 
136 #line 71 "../bison++/bison.h"
137 /* YY_RelParser_DEBUG */
138 #endif
139 
140 #ifndef YY_RelParser_LSP_NEEDED
141 
142  #line 75 "../bison++/bison.h"
143 
144 #line 75 "../bison++/bison.h"
145  /* YY_RelParser_LSP_NEEDED*/
146 #endif
147 
148 /* DEFAULT LTYPE*/
149 #ifdef YY_RelParser_LSP_NEEDED
150  #ifndef YY_RelParser_LTYPE
151  #ifndef BISON_YYLTYPE_ISDECLARED
152  #define BISON_YYLTYPE_ISDECLARED
153 typedef
154  struct yyltype
155  {
156  int timestamp;
157  int first_line;
158  int first_column;
159  int last_line;
160  int last_column;
161  char *text;
162  }
163  yyltype;
164  #endif
165 
166  #define YY_RelParser_LTYPE yyltype
167  #endif
168 #endif
169 
170 /* DEFAULT STYPE*/
171 #ifndef YY_RelParser_STYPE
172  #define YY_RelParser_STYPE int
173 #endif
174 
175 /* DEFAULT MISCELANEOUS */
176 #ifndef YY_RelParser_PARSE
177  #define YY_RelParser_PARSE yyparse
178 #endif
179 
180 #ifndef YY_RelParser_LEX
181  #define YY_RelParser_LEX yylex
182 #endif
183 
184 #ifndef YY_RelParser_LVAL
185  #define YY_RelParser_LVAL yylval
186 #endif
187 
188 #ifndef YY_RelParser_LLOC
189  #define YY_RelParser_LLOC yylloc
190 #endif
191 
192 #ifndef YY_RelParser_CHAR
193  #define YY_RelParser_CHAR yychar
194 #endif
195 
196 #ifndef YY_RelParser_NERRS
197  #define YY_RelParser_NERRS yynerrs
198 #endif
199 
200 #ifndef YY_RelParser_DEBUG_FLAG
201  #define YY_RelParser_DEBUG_FLAG yydebug
202 #endif
203 
204 #ifndef YY_RelParser_ERROR
205  #define YY_RelParser_ERROR yyerror
206 #endif
207 
208 #ifndef YY_RelParser_PARSE_PARAM
209  #ifndef __STDC__
210  #ifndef __cplusplus
211  #ifndef YY_USE_CLASS
212  #define YY_RelParser_PARSE_PARAM
213  #ifndef YY_RelParser_PARSE_PARAM_DEF
214  #define YY_RelParser_PARSE_PARAM_DEF
215  #endif
216  #endif
217  #endif
218  #endif
219  #ifndef YY_RelParser_PARSE_PARAM
220  #define YY_RelParser_PARSE_PARAM void
221  #endif
222 #endif
223 
224 /* TOKEN C */
225 #ifndef YY_USE_CLASS
226 
227  #ifndef YY_RelParser_PURE
228  #ifndef yylval
229  extern YY_RelParser_STYPE YY_RelParser_LVAL;
230  #else
231  #if yylval != YY_RelParser_LVAL
232  extern YY_RelParser_STYPE YY_RelParser_LVAL;
233  #else
234  #warning "Namespace conflict, disabling some functionality (bison++ only)"
235  #endif
236  #endif
237  #endif
238 
239 
240  #line 169 "../bison++/bison.h"
241 #define IFACE_ 258
242 #define CLIENT_ 259
243 #define SERVER_ 260
244 #define UNICAST_ 261
245 #define MULTICAST_ 262
246 #define IFACE_ID_ 263
247 #define IFACE_ID_ORDER_ 264
248 #define LOGNAME_ 265
249 #define LOGLEVEL_ 266
250 #define LOGMODE_ 267
251 #define WORKDIR_ 268
252 #define DUID_ 269
253 #define OPTION_ 270
254 #define REMOTE_ID_ 271
255 #define ECHO_REQUEST_ 272
256 #define RELAY_ID_ 273
257 #define LINK_LAYER_ 274
258 #define GUESS_MODE_ 275
259 #define STRING_ 276
260 #define HEXNUMBER_ 277
261 #define INTNUMBER_ 278
262 #define IPV6ADDR_ 279
263 
264 
265 #line 169 "../bison++/bison.h"
266  /* #defines token */
267 /* after #define tokens, before const tokens S5*/
268 #else
269  #ifndef YY_RelParser_CLASS
270  #define YY_RelParser_CLASS RelParser
271  #endif
272 
273  #ifndef YY_RelParser_INHERIT
274  #define YY_RelParser_INHERIT
275  #endif
276 
277  #ifndef YY_RelParser_MEMBERS
278  #define YY_RelParser_MEMBERS
279  #endif
280 
281  #ifndef YY_RelParser_LEX_BODY
282  #define YY_RelParser_LEX_BODY
283  #endif
284 
285  #ifndef YY_RelParser_ERROR_BODY
286  #define YY_RelParser_ERROR_BODY
287  #endif
288 
289  #ifndef YY_RelParser_CONSTRUCTOR_PARAM
290  #define YY_RelParser_CONSTRUCTOR_PARAM
291  #endif
292  /* choose between enum and const */
293  #ifndef YY_RelParser_USE_CONST_TOKEN
294  #define YY_RelParser_USE_CONST_TOKEN 0
295  /* yes enum is more compatible with flex, */
296  /* so by default we use it */
297  #endif
298  #if YY_RelParser_USE_CONST_TOKEN != 0
299  #ifndef YY_RelParser_ENUM_TOKEN
300  #define YY_RelParser_ENUM_TOKEN yy_RelParser_enum_token
301  #endif
302  #endif
303 
304 class YY_RelParser_CLASS YY_RelParser_INHERIT
305 {
306 public:
307  #if YY_RelParser_USE_CONST_TOKEN != 0
308  /* static const int token ... */
309 
310  #line 212 "../bison++/bison.h"
311 static const int IFACE_;
312 static const int CLIENT_;
313 static const int SERVER_;
314 static const int UNICAST_;
315 static const int MULTICAST_;
316 static const int IFACE_ID_;
317 static const int IFACE_ID_ORDER_;
318 static const int LOGNAME_;
319 static const int LOGLEVEL_;
320 static const int LOGMODE_;
321 static const int WORKDIR_;
322 static const int DUID_;
323 static const int OPTION_;
324 static const int REMOTE_ID_;
325 static const int ECHO_REQUEST_;
326 static const int RELAY_ID_;
327 static const int LINK_LAYER_;
328 static const int GUESS_MODE_;
329 static const int STRING_;
330 static const int HEXNUMBER_;
331 static const int INTNUMBER_;
332 static const int IPV6ADDR_;
333 
334 
335 #line 212 "../bison++/bison.h"
336  /* decl const */
337  #else
338  enum YY_RelParser_ENUM_TOKEN { YY_RelParser_NULL_TOKEN=0
339 
340  #line 215 "../bison++/bison.h"
341  ,IFACE_=258
342  ,CLIENT_=259
343  ,SERVER_=260
344  ,UNICAST_=261
345  ,MULTICAST_=262
346  ,IFACE_ID_=263
347  ,IFACE_ID_ORDER_=264
348  ,LOGNAME_=265
349  ,LOGLEVEL_=266
350  ,LOGMODE_=267
351  ,WORKDIR_=268
352  ,DUID_=269
353  ,OPTION_=270
354  ,REMOTE_ID_=271
355  ,ECHO_REQUEST_=272
356  ,RELAY_ID_=273
357  ,LINK_LAYER_=274
358  ,GUESS_MODE_=275
359  ,STRING_=276
360  ,HEXNUMBER_=277
361  ,INTNUMBER_=278
362  ,IPV6ADDR_=279
363 
364 
365 #line 215 "../bison++/bison.h"
366  /* enum token */
367  }; /* end of enum declaration */
368  #endif
369 public:
370  int YY_RelParser_PARSE(YY_RelParser_PARSE_PARAM);
371  virtual void YY_RelParser_ERROR(char *msg) YY_RelParser_ERROR_BODY;
372  #ifdef YY_RelParser_PURE
373  #ifdef YY_RelParser_LSP_NEEDED
374  virtual int YY_RelParser_LEX(YY_RelParser_STYPE *YY_RelParser_LVAL,YY_RelParser_LTYPE *YY_RelParser_LLOC) YY_RelParser_LEX_BODY;
375  #else
376  virtual int YY_RelParser_LEX(YY_RelParser_STYPE *YY_RelParser_LVAL) YY_RelParser_LEX_BODY;
377  #endif
378  #else
379  virtual int YY_RelParser_LEX() YY_RelParser_LEX_BODY;
380  YY_RelParser_STYPE YY_RelParser_LVAL;
381  #ifdef YY_RelParser_LSP_NEEDED
382  YY_RelParser_LTYPE YY_RelParser_LLOC;
383  #endif
384  int YY_RelParser_NERRS;
385  int YY_RelParser_CHAR;
386  #endif
387  #if YY_RelParser_DEBUG != 0
388  public:
389  int YY_RelParser_DEBUG_FLAG; /* nonzero means print parse trace */
390  #endif
391 public:
392  YY_RelParser_CLASS(YY_RelParser_CONSTRUCTOR_PARAM);
393 public:
395 };
396 /* other declare folow */
397 #endif
398 
399 
400 #if YY_RelParser_COMPATIBILITY != 0
401  /* backward compatibility */
402  /* Removed due to bison problems
403  /#ifndef YYSTYPE
404  / #define YYSTYPE YY_RelParser_STYPE
405  /#endif*/
406 
407  #ifndef YYLTYPE
408  #define YYLTYPE YY_RelParser_LTYPE
409  #endif
410  #ifndef YYDEBUG
411  #ifdef YY_RelParser_DEBUG
412  #define YYDEBUG YY_RelParser_DEBUG
413  #endif
414  #endif
415 
416 #endif
417 /* END */
418 
419  #line 267 "../bison++/bison.h"
420 #endif
421