![]() |
Kea 3.3.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 2046 of file parser.cc.
References isc::db::error, and isc::eval::EvalParser::syntax_error::location.
|
inlinestatic |
Definition at line 1909 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_ADDRTOTEXT.
|
inlinestatic |
Definition at line 1804 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_ALL.
|
inlinestatic |
Definition at line 1324 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_AND.
|
inlinestatic |
Definition at line 2119 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_ANY.
|
inlinestatic |
Definition at line 1669 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_CHADDR.
|
inlinestatic |
Definition at line 1714 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_CIADDR.
|
inlinestatic |
Definition at line 1819 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_COMA.
|
inlinestatic |
Definition at line 1834 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_CONCAT.
|
inlinestatic |
Definition at line 2134 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_DATA.
|
inlinestatic |
Definition at line 1519 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_DOT.
|
inlinestatic |
Definition at line 1624 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_DST.
|
inlinestatic |
Definition at line 1234 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_END.
|
inlinestatic |
Definition at line 2149 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_ENTERPRISE.
|
inlinestatic |
Definition at line 1384 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_EQUAL.
|
inlinestatic |
Definition at line 1249 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_EVALerror.
|
inlinestatic |
Definition at line 1264 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_EVALUNDEF.
|
inlinestatic |
Definition at line 1564 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_EXISTS.
|
inlinestatic |
Definition at line 1729 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_GIADDR.
|
inlinestatic |
Definition at line 1549 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_HEX.
|
inlinestatic |
Definition at line 2239 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_HEXSTRING.
|
inlinestatic |
Definition at line 1684 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_HLEN.
|
inlinestatic |
Definition at line 1699 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_HTYPE.
|
inlinestatic |
Definition at line 1594 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_IFACE.
|
inlinestatic |
Definition at line 1864 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_IFELSE.
|
inlinestatic |
Definition at line 1939 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_INT16TOTEXT.
|
inlinestatic |
Definition at line 1954 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_INT32TOTEXT.
|
inlinestatic |
Definition at line 1924 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_INT8TOTEXT.
|
inlinestatic |
Definition at line 2224 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_INTEGER.
|
inlinestatic |
Definition at line 2269 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_IP_ADDRESS.
|
inlinestatic |
Definition at line 1489 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_LBRACKET.
|
inlinestatic |
Definition at line 2014 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_LCASE.
|
inlinestatic |
Definition at line 1639 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_LEN.
|
inlinestatic |
Definition at line 1474 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_LINKADDR.
|
inlinestatic |
Definition at line 1279 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_LPAREN.
|
inlinestatic |
Definition at line 2164 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_MATCH.
|
inlinestatic |
Definition at line 1444 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_MEMBER.
|
inlinestatic |
Definition at line 2059 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_MSGTYPE.
|
inlinestatic |
Definition at line 1309 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_NOT.
|
inlinestatic |
Definition at line 1399 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_OPTION.
|
inlinestatic |
Definition at line 2254 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_OPTION_NAME.
|
inlinestatic |
Definition at line 1354 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_OR.
|
inlinestatic |
Definition at line 1459 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_PEERADDR.
|
inlinestatic |
Definition at line 1579 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_PKT.
|
inlinestatic |
Definition at line 1654 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_PKT4.
|
inlinestatic |
Definition at line 2044 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_PKT6.
|
inlinestatic |
Definition at line 1849 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_PLUS.
|
inlinestatic |
Definition at line 1504 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_RBRACKET.
|
inlinestatic |
Definition at line 1414 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_RELAY4.
|
inlinestatic |
Definition at line 1429 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_RELAY6.
|
inlinestatic |
Definition at line 1294 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_RPAREN.
|
inlinestatic |
Definition at line 1339 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_SAND.
|
inlinestatic |
Definition at line 1759 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_SIADDR.
|
inlinestatic |
Definition at line 1879 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_SIFELSE.
|
inlinestatic |
Definition at line 1369 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_SOR.
|
inlinestatic |
Definition at line 1789 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_SPLIT.
|
inlinestatic |
Definition at line 1609 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_SRC.
|
inlinestatic |
Definition at line 2209 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_STRING.
|
inlinestatic |
Definition at line 1774 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_SUBSTRING.
|
inlinestatic |
Definition at line 1534 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_TEXT.
|
inlinestatic |
Definition at line 1894 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_TOHEXSTRING.
|
inlinestatic |
Definition at line 2179 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_TOPLEVEL_BOOL.
|
inlinestatic |
Definition at line 2194 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_TOPLEVEL_STRING.
|
inlinestatic |
Definition at line 2074 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_TRANSID.
|
inlinestatic |
Definition at line 2029 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_UCASE.
|
inlinestatic |
Definition at line 1984 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_UINT16TOTEXT.
|
inlinestatic |
Definition at line 1999 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_UINT32TOTEXT.
|
inlinestatic |
Definition at line 1969 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_UINT8TOTEXT.
|
inlinestatic |
Definition at line 2104 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_VENDOR.
|
inlinestatic |
Definition at line 2089 of file parser.h.
References isc::eval::EvalParser::token::TOKEN_VENDOR_CLASS.
|
inlinestatic |
Definition at line 1744 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 738 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_chain, 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_relay4_option_chain, isc::eval::EvalParser::symbol_kind::S_relay6_field, isc::eval::EvalParser::symbol_kind::S_relay6_option_chain, isc::eval::EvalParser::symbol_kind::S_STRING, isc::eval::EvalParser::symbol_kind::S_sub_option_code, isc::eval::EvalParser::symbol_kind::S_vendor_option_chain, 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_ATTRIBUTE_UNUSED, 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 2092 of file parser.cc.
Referenced by isc::eval::EvalParser::basic_symbol< by_kind >::name().
|
static |
The number of tokens.
Definition at line 709 of file parser.h.
Referenced by isc::eval::EvalParser::context::expected_tokens().