![]() |
Kea 2.5.5
|
A Bison parser. More...
#include <parser.h>
Classes | |
struct | basic_symbol |
A complete symbol. More... | |
struct | by_kind |
Type access provider for token (enum) based symbols. More... | |
class | context |
struct | symbol_kind |
Symbol kinds. More... | |
struct | symbol_type |
"External" symbols: returned by the scanner. More... | |
struct | syntax_error |
Syntax errors thrown from user actions. More... | |
struct | token |
Token kinds. More... | |
class | value_type |
A buffer to store and retrieve objects. More... | |
Public Types | |
typedef by_kind | by_type |
Backward compatibility for a private implementation detail (Bison 3.6). More... | |
typedef int | debug_level_type |
Type for debugging levels. More... | |
typedef location | location_type |
Symbol locations. More... | |
typedef value_type | semantic_type |
Backward compatibility (Bison 3.8). More... | |
typedef symbol_kind::symbol_kind_type | symbol_kind_type |
(Internal) symbol kind. More... | |
typedef token::token_kind_type | token_kind_type |
Token kind, as returned by yylex. More... | |
typedef token_kind_type | token_type |
Backward compatibility alias (Bison 3.6). More... | |
Public Member Functions | |
EvalParser (EvalContext &ctx_yyarg) | |
Build a parser object. More... | |
virtual | ~EvalParser () |
debug_level_type | debug_level () const YY_ATTRIBUTE_PURE |
The current debugging level. More... | |
std::ostream & | debug_stream () const YY_ATTRIBUTE_PURE |
The current debugging stream. More... | |
virtual void | error (const location_type &loc, const std::string &msg) |
Report a syntax error. More... | |
void | error (const syntax_error &err) |
Report a syntax error. More... | |
int | operator() () |
Parse. More... | |
virtual int | parse () |
Parse. More... | |
void | set_debug_level (debug_level_type l) |
Set the current debugging level. More... | |
void | set_debug_stream (std::ostream &) |
Set the current debugging stream. More... | |
Static Public Attributes | |
static const symbol_kind_type | YYNTOKENS = symbol_kind::YYNTOKENS |
The number of tokens. More... | |
typedef int isc::eval::EvalParser::debug_level_type |
typedef location isc::eval::EvalParser::location_type |
isc::eval::EvalParser::EvalParser | ( | EvalContext & | ctx_yyarg | ) |
EvalParser::debug_level_type isc::eval::EvalParser::debug_level | ( | ) | const |
std::ostream & isc::eval::EvalParser::debug_stream | ( | ) | const |
|
virtual |
void isc::eval::EvalParser::error | ( | const syntax_error & | err | ) |
Report a syntax error.
Definition at line 1785 of file parser.cc.
References error(), and isc::eval::EvalParser::syntax_error::location.
|
inlinestatic |
Definition at line 1770 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_ADDRTOTEXT.
|
inlinestatic |
Definition at line 1680 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_ALL.
|
inlinestatic |
Definition at line 1230 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_AND.
|
inlinestatic |
Definition at line 1980 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_ANY.
|
inlinestatic |
Definition at line 1545 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_CHADDR.
|
inlinestatic |
Definition at line 1590 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_CIADDR.
|
inlinestatic |
Definition at line 1695 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_COMA.
|
inlinestatic |
Definition at line 1710 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_CONCAT.
|
inlinestatic |
Definition at line 1995 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_DATA.
|
inlinestatic |
Definition at line 1395 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_DOT.
|
inlinestatic |
Definition at line 1500 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_DST.
|
inlinestatic |
Definition at line 1140 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_END.
|
inlinestatic |
Definition at line 2010 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_ENTERPRISE.
|
inlinestatic |
Definition at line 1260 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_EQUAL.
|
inlinestatic |
Definition at line 1155 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_EVALerror.
|
inlinestatic |
Definition at line 1170 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_EVALUNDEF.
|
inlinestatic |
Definition at line 1440 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_EXISTS.
|
inlinestatic |
Definition at line 1605 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_GIADDR.
|
inlinestatic |
Definition at line 1425 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_HEX.
|
inlinestatic |
Definition at line 2085 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_HEXSTRING.
|
inlinestatic |
Definition at line 1560 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_HLEN.
|
inlinestatic |
Definition at line 1575 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_HTYPE.
|
inlinestatic |
Definition at line 1470 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_IFACE.
|
inlinestatic |
Definition at line 1740 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_IFELSE.
|
inlinestatic |
Definition at line 1800 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_INT16TOTEXT.
|
inlinestatic |
Definition at line 1815 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_INT32TOTEXT.
|
inlinestatic |
Definition at line 1785 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_INT8TOTEXT.
|
inlinestatic |
Definition at line 2070 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_INTEGER.
|
inlinestatic |
Definition at line 2115 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_IP_ADDRESS.
|
inlinestatic |
Definition at line 1365 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_LBRACKET.
|
inlinestatic |
Definition at line 1875 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_LCASE.
|
inlinestatic |
Definition at line 1515 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_LEN.
|
inlinestatic |
Definition at line 1350 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_LINKADDR.
|
inlinestatic |
Definition at line 1185 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_LPAREN.
|
inlinestatic |
Definition at line 1320 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_MEMBER.
|
inlinestatic |
Definition at line 1920 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_MSGTYPE.
|
inlinestatic |
Definition at line 1215 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_NOT.
|
inlinestatic |
Definition at line 1275 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_OPTION.
|
inlinestatic |
Definition at line 2100 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_OPTION_NAME.
|
inlinestatic |
Definition at line 1245 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_OR.
|
inlinestatic |
Definition at line 1335 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_PEERADDR.
|
inlinestatic |
Definition at line 1455 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_PKT.
|
inlinestatic |
Definition at line 1530 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_PKT4.
|
inlinestatic |
Definition at line 1905 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_PKT6.
|
inlinestatic |
Definition at line 1725 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_PLUS.
|
inlinestatic |
Definition at line 1380 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_RBRACKET.
|
inlinestatic |
Definition at line 1290 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_RELAY4.
|
inlinestatic |
Definition at line 1305 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_RELAY6.
|
inlinestatic |
Definition at line 1200 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_RPAREN.
|
inlinestatic |
Definition at line 1635 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_SIADDR.
|
inlinestatic |
Definition at line 1665 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_SPLIT.
|
inlinestatic |
Definition at line 1485 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_SRC.
|
inlinestatic |
Definition at line 2055 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_STRING.
|
inlinestatic |
Definition at line 1650 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_SUBSTRING.
|
inlinestatic |
Definition at line 1410 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_TEXT.
|
inlinestatic |
Definition at line 1755 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_TOHEXSTRING.
|
inlinestatic |
Definition at line 2025 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_TOPLEVEL_BOOL.
|
inlinestatic |
Definition at line 2040 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_TOPLEVEL_STRING.
|
inlinestatic |
Definition at line 1935 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_TRANSID.
|
inlinestatic |
Definition at line 1890 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_UCASE.
|
inlinestatic |
Definition at line 1845 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_UINT16TOTEXT.
|
inlinestatic |
Definition at line 1860 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_UINT32TOTEXT.
|
inlinestatic |
Definition at line 1830 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_UINT8TOTEXT.
|
inlinestatic |
Definition at line 1965 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_VENDOR.
|
inlinestatic |
Definition at line 1950 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_VENDOR_CLASS.
|
inlinestatic |
Definition at line 1620 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_YIADDR.
int isc::eval::EvalParser::operator() | ( | ) |
|
virtual |
Parse.
Length of the RHS of the rule being reduced.
The lookahead symbol.
The locations where the error started and ended.
The return value of parse ().
Definition at line 644 of file parser.cc.
References isc::eval::EvalParser::basic_symbol< Base >::clear(), isc::eval::EvalContext::convertNestLevelNumber(), isc::eval::EvalContext::convertOptionCode(), isc::eval::EvalContext::convertOptionName(), isc::eval::EvalContext::convertUint32(), isc::eval::EvalContext::convertUint8(), isc::eval::EvalParser::basic_symbol< Base >::empty(), error(), isc::eval::EvalContext::expression, isc::eval::EvalContext::getUniverse(), isc::eval::EvalContext::isClientClassDefined(), isc::eval::EvalParser::basic_symbol< Base >::location, isc::eval::EvalParser::basic_symbol< Base >::move(), isc::eval::EvalParser::symbol_kind::S_enterprise_id, isc::eval::EvalParser::symbol_kind::S_HEXSTRING, isc::eval::EvalParser::symbol_kind::S_INTEGER, isc::eval::EvalParser::symbol_kind::S_integer_expr, isc::eval::EvalParser::symbol_kind::S_IP_ADDRESS, isc::eval::EvalParser::symbol_kind::S_nest_level, isc::eval::EvalParser::symbol_kind::S_option_code, isc::eval::EvalParser::symbol_kind::S_OPTION_NAME, isc::eval::EvalParser::symbol_kind::S_option_repr_type, isc::eval::EvalParser::symbol_kind::S_pkt4_field, isc::eval::EvalParser::symbol_kind::S_pkt6_field, isc::eval::EvalParser::symbol_kind::S_pkt_metadata, isc::eval::EvalParser::symbol_kind::S_relay6_field, isc::eval::EvalParser::symbol_kind::S_STRING, isc::eval::EvalParser::symbol_kind::S_sub_option_code, isc::eval::EvalParser::symbol_kind::S_YYEOF, isc::eval::EvalParser::symbol_kind::S_YYerror, isc::eval::EvalParser::symbol_kind::S_YYUNDEF, YY_MOVE, YY_REDUCE_PRINT, YY_STACK_PRINT, YY_SYMBOL_PRINT, YYABORT, YYACCEPT, YYCDEBUG, YYERROR, yylex, and YYLLOC_DEFAULT.
Referenced by operator()(), and isc::eval::EvalContext::parseString().
void isc::eval::EvalParser::set_debug_level | ( | debug_level_type | l | ) |
Set the current debugging level.
Definition at line 609 of file parser.cc.
Referenced by isc::eval::EvalContext::parseString().
void isc::eval::EvalParser::set_debug_stream | ( | std::ostream & | o | ) |
|
static |
The user-facing name of the symbol whose (internal) number is YYSYMBOL.
No bounds checking.
Definition at line 1831 of file parser.cc.
Referenced by isc::eval::EvalParser::basic_symbol< Base >::name().
|
static |
The number of tokens.
Definition at line 683 of file parser.h.
Referenced by isc::eval::EvalParser::context::expected_tokens().