![]() |
Kea 3.1.1
|
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). | |
typedef location | location_type |
Symbol locations. | |
typedef value_type | semantic_type |
Backward compatibility (Bison 3.8). | |
typedef symbol_kind::symbol_kind_type | symbol_kind_type |
(Internal) symbol kind. | |
typedef token::token_kind_type | token_kind_type |
Token kind, as returned by yylex. | |
typedef token_kind_type | token_type |
Backward compatibility alias (Bison 3.6). | |
Public Member Functions | |
EvalParser (EvalContext &ctx_yyarg) | |
Build a parser object. | |
virtual | ~EvalParser () |
virtual void | error (const location_type &loc, const std::string &msg) |
Report a syntax error. | |
void | error (const syntax_error &err) |
Report a syntax error. | |
int | operator() () |
Parse. | |
virtual int | parse () |
Parse. | |
Static Public Attributes | |
static const symbol_kind_type | YYNTOKENS = symbol_kind::YYNTOKENS |
The number of tokens. | |
typedef location isc::eval::EvalParser::location_type |
isc::eval::EvalParser::EvalParser | ( | EvalContext & | ctx_yyarg | ) |
Build a parser object.
Definition at line 152 of file parser.cc.
Referenced by isc::eval::EvalParser::context::context().
|
virtual |
void isc::eval::EvalParser::error | ( | const syntax_error & | err | ) |
Report a syntax error.
Definition at line 1879 of file parser.cc.
References isc::db::error, and isc::eval::EvalParser::syntax_error::location.
|
inlinestatic |
Definition at line 1827 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_ADDRTOTEXT.
|
inlinestatic |
Definition at line 1722 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_ALL.
|
inlinestatic |
Definition at line 1242 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_AND.
|
inlinestatic |
Definition at line 2037 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_ANY.
|
inlinestatic |
Definition at line 1587 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_CHADDR.
|
inlinestatic |
Definition at line 1632 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_CIADDR.
|
inlinestatic |
Definition at line 1737 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_COMA.
|
inlinestatic |
Definition at line 1752 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_CONCAT.
|
inlinestatic |
Definition at line 2052 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_DATA.
|
inlinestatic |
Definition at line 1437 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_DOT.
|
inlinestatic |
Definition at line 1542 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_DST.
|
inlinestatic |
Definition at line 1152 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_END.
|
inlinestatic |
Definition at line 2067 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_ENTERPRISE.
|
inlinestatic |
Definition at line 1302 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_EQUAL.
|
inlinestatic |
Definition at line 1167 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_EVALerror.
|
inlinestatic |
Definition at line 1182 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_EVALUNDEF.
|
inlinestatic |
Definition at line 1482 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_EXISTS.
|
inlinestatic |
Definition at line 1647 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_GIADDR.
|
inlinestatic |
Definition at line 1467 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_HEX.
|
inlinestatic |
Definition at line 2157 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_HEXSTRING.
|
inlinestatic |
Definition at line 1602 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_HLEN.
|
inlinestatic |
Definition at line 1617 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_HTYPE.
|
inlinestatic |
Definition at line 1512 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_IFACE.
|
inlinestatic |
Definition at line 1782 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_IFELSE.
|
inlinestatic |
Definition at line 1857 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_INT16TOTEXT.
|
inlinestatic |
Definition at line 1872 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_INT32TOTEXT.
|
inlinestatic |
Definition at line 1842 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_INT8TOTEXT.
|
inlinestatic |
Definition at line 2142 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_INTEGER.
|
inlinestatic |
Definition at line 2187 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_IP_ADDRESS.
|
inlinestatic |
Definition at line 1407 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_LBRACKET.
|
inlinestatic |
Definition at line 1932 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_LCASE.
|
inlinestatic |
Definition at line 1557 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_LEN.
|
inlinestatic |
Definition at line 1392 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_LINKADDR.
|
inlinestatic |
Definition at line 1197 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_LPAREN.
|
inlinestatic |
Definition at line 2082 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_MATCH.
|
inlinestatic |
Definition at line 1362 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_MEMBER.
|
inlinestatic |
Definition at line 1977 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_MSGTYPE.
|
inlinestatic |
Definition at line 1227 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_NOT.
|
inlinestatic |
Definition at line 1317 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_OPTION.
|
inlinestatic |
Definition at line 2172 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_OPTION_NAME.
|
inlinestatic |
Definition at line 1272 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_OR.
|
inlinestatic |
Definition at line 1377 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_PEERADDR.
|
inlinestatic |
Definition at line 1497 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_PKT.
|
inlinestatic |
Definition at line 1572 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_PKT4.
|
inlinestatic |
Definition at line 1962 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_PKT6.
|
inlinestatic |
Definition at line 1767 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_PLUS.
|
inlinestatic |
Definition at line 1422 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_RBRACKET.
|
inlinestatic |
Definition at line 1332 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_RELAY4.
|
inlinestatic |
Definition at line 1347 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_RELAY6.
|
inlinestatic |
Definition at line 1212 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_RPAREN.
|
inlinestatic |
Definition at line 1257 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_SAND.
|
inlinestatic |
Definition at line 1677 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_SIADDR.
|
inlinestatic |
Definition at line 1797 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_SIFELSE.
|
inlinestatic |
Definition at line 1287 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_SOR.
|
inlinestatic |
Definition at line 1707 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_SPLIT.
|
inlinestatic |
Definition at line 1527 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_SRC.
|
inlinestatic |
Definition at line 2127 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_STRING.
|
inlinestatic |
Definition at line 1692 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_SUBSTRING.
|
inlinestatic |
Definition at line 1452 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_TEXT.
|
inlinestatic |
Definition at line 1812 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_TOHEXSTRING.
|
inlinestatic |
Definition at line 2097 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_TOPLEVEL_BOOL.
|
inlinestatic |
Definition at line 2112 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_TOPLEVEL_STRING.
|
inlinestatic |
Definition at line 1992 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_TRANSID.
|
inlinestatic |
Definition at line 1947 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_UCASE.
|
inlinestatic |
Definition at line 1902 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_UINT16TOTEXT.
|
inlinestatic |
Definition at line 1917 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_UINT32TOTEXT.
|
inlinestatic |
Definition at line 1887 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_UINT8TOTEXT.
|
inlinestatic |
Definition at line 2022 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_VENDOR.
|
inlinestatic |
Definition at line 2007 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_VENDOR_CLASS.
|
inlinestatic |
Definition at line 1662 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::value_type::as(), isc::dhcp::TokenPkt4::CHADDR, isc::dhcp::TokenPkt4::CIADDR, isc::eval::EvalParser::basic_symbol< Base >::clear(), isc::dhcp::TokenVendor::DATA, isc::dhcp::TokenPkt::DST, isc::eval::EvalParser::value_type::emplace(), isc::eval::EvalParser::basic_symbol< Base >::empty(), isc::dhcp::TokenVendor::ENTERPRISE_ID, isc::db::error, isc::dhcp::TokenOption::EXISTS, isc::dhcp::TokenPkt4::GIADDR, isc::dhcp::TokenOption::HEXADECIMAL, isc::dhcp::TokenPkt4::HLEN, isc::dhcp::TokenPkt4::HTYPE, isc::dhcp::TokenPkt::IFACE, isc::eval::EvalParser::by_kind::kind(), isc::eval::EvalParser::by_kind::kind_, isc::dhcp::TokenPkt::LEN, isc::dhcp::TokenRelay6Field::LINKADDR, isc::eval::EvalParser::basic_symbol< Base >::location, isc::eval::EvalParser::basic_symbol< Base >::move(), isc::dhcp::TokenPkt4::MSGTYPE, isc::dhcp::TokenPkt6::MSGTYPE, isc::dhcp::TokenRelay6Field::PEERADDR, 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, isc::dhcp::TokenPkt4::SIADDR, isc::dhcp::TokenPkt::SRC, isc::dhcp::TokenOption::TEXTUAL, isc::dhcp::TokenPkt4::TRANSID, isc::dhcp::TokenPkt6::TRANSID, isc::dhcp::Option::V4, isc::dhcp::Option::V6, isc::eval::EvalParser::basic_symbol< Base >::value, isc::dhcp::TokenPkt4::YIADDR, 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().
|
static |
The user-facing name of the symbol whose (internal) number is YYSYMBOL.
No bounds checking.
Definition at line 1925 of file parser.cc.
Referenced by isc::eval::EvalParser::basic_symbol< by_kind >::name().
|
static |
The number of tokens.
Definition at line 695 of file parser.h.
Referenced by isc::eval::EvalParser::context::expected_tokens().