Kea 2.5.8
isc::d2::D2Parser Class Reference

A Bison parser. More...

#include <d2_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

 D2Parser (isc::d2::D2ParserContext &ctx_yyarg)
 Build a parser object.
 
virtual ~D2Parser ()
 
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 Member Functions

static symbol_type make_ALGORITHM (const location_type &l)
 
static symbol_type make_BOOLEAN (const bool &v, const location_type &l)
 
static symbol_type make_COLON (const location_type &l)
 
static symbol_type make_COMMA (const location_type &l)
 
static symbol_type make_COMMENT (const location_type &l)
 
static symbol_type make_CONTROL_SOCKET (const location_type &l)
 
static symbol_type make_D2_PARSER_error (const location_type &l)
 
static symbol_type make_D2_PARSER_UNDEF (const location_type &l)
 
static symbol_type make_DDNS_DOMAINS (const location_type &l)
 
static symbol_type make_DEBUGLEVEL (const location_type &l)
 
static symbol_type make_DHCPDDNS (const location_type &l)
 
static symbol_type make_DIGEST_BITS (const location_type &l)
 
static symbol_type make_DNS_SERVER_TIMEOUT (const location_type &l)
 
static symbol_type make_DNS_SERVERS (const location_type &l)
 
static symbol_type make_END (const location_type &l)
 
static symbol_type make_FLOAT (const double &v, const location_type &l)
 
static symbol_type make_FLUSH (const location_type &l)
 
static symbol_type make_FORWARD_DDNS (const location_type &l)
 
static symbol_type make_HOOKS_LIBRARIES (const location_type &l)
 
static symbol_type make_HOSTNAME (const location_type &l)
 
static symbol_type make_INTEGER (const int64_t &v, const location_type &l)
 
static symbol_type make_IP_ADDRESS (const location_type &l)
 
static symbol_type make_JSON (const location_type &l)
 
static symbol_type make_KEY_NAME (const location_type &l)
 
static symbol_type make_LCURLY_BRACKET (const location_type &l)
 
static symbol_type make_LIBRARY (const location_type &l)
 
static symbol_type make_LOGGERS (const location_type &l)
 
static symbol_type make_LSQUARE_BRACKET (const location_type &l)
 
static symbol_type make_MAXSIZE (const location_type &l)
 
static symbol_type make_MAXVER (const location_type &l)
 
static symbol_type make_NAME (const location_type &l)
 
static symbol_type make_NCR_FORMAT (const location_type &l)
 
static symbol_type make_NCR_PROTOCOL (const location_type &l)
 
static symbol_type make_NULL_TYPE (const location_type &l)
 
static symbol_type make_OUTPUT (const location_type &l)
 
static symbol_type make_OUTPUT_OPTIONS (const location_type &l)
 
static symbol_type make_PARAMETERS (const location_type &l)
 
static symbol_type make_PATTERN (const location_type &l)
 
static symbol_type make_PORT (const location_type &l)
 
static symbol_type make_RCURLY_BRACKET (const location_type &l)
 
static symbol_type make_REVERSE_DDNS (const location_type &l)
 
static symbol_type make_RSQUARE_BRACKET (const location_type &l)
 
static symbol_type make_SECRET (const location_type &l)
 
static symbol_type make_SECRET_FILE (const location_type &l)
 
static symbol_type make_SEVERITY (const location_type &l)
 
static symbol_type make_SOCKET_NAME (const location_type &l)
 
static symbol_type make_SOCKET_TYPE (const location_type &l)
 
static symbol_type make_STRING (const std::string &v, const location_type &l)
 
static symbol_type make_SUB_DDNS_DOMAIN (const location_type &l)
 
static symbol_type make_SUB_DDNS_DOMAINS (const location_type &l)
 
static symbol_type make_SUB_DHCPDDNS (const location_type &l)
 
static symbol_type make_SUB_DNS_SERVER (const location_type &l)
 
static symbol_type make_SUB_DNS_SERVERS (const location_type &l)
 
static symbol_type make_SUB_HOOKS_LIBRARY (const location_type &l)
 
static symbol_type make_SUB_TSIG_KEY (const location_type &l)
 
static symbol_type make_SUB_TSIG_KEYS (const location_type &l)
 
static symbol_type make_TCP (const location_type &l)
 
static symbol_type make_TOPLEVEL_DHCPDDNS (const location_type &l)
 
static symbol_type make_TOPLEVEL_JSON (const location_type &l)
 
static symbol_type make_TSIG_KEYS (const location_type &l)
 
static symbol_type make_UDP (const location_type &l)
 
static symbol_type make_USER_CONTEXT (const location_type &l)
 
static std::string symbol_name (symbol_kind_type yysymbol)
 The user-facing name of the symbol whose (internal) number is YYSYMBOL.
 

Static Public Attributes

static const symbol_kind_type YYNTOKENS = symbol_kind::YYNTOKENS
 The number of tokens.
 

Detailed Description

A Bison parser.

Definition at line 215 of file d2_parser.h.

Member Typedef Documentation

◆ by_type

Backward compatibility for a private implementation detail (Bison 3.6).

Definition at line 1062 of file d2_parser.h.

◆ location_type

Symbol locations.

Definition at line 467 of file d2_parser.h.

◆ semantic_type

Backward compatibility (Bison 3.8).

Definition at line 464 of file d2_parser.h.

◆ symbol_kind_type

(Internal) symbol kind.

Definition at line 793 of file d2_parser.h.

◆ token_kind_type

Token kind, as returned by yylex.

Definition at line 561 of file d2_parser.h.

◆ token_type

Backward compatibility alias (Bison 3.6).

Definition at line 564 of file d2_parser.h.

Constructor & Destructor Documentation

◆ D2Parser()

isc::d2::D2Parser::D2Parser ( isc::d2::D2ParserContext ctx_yyarg)

Build a parser object.

Definition at line 152 of file d2_parser.cc.

◆ ~D2Parser()

isc::d2::D2Parser::~D2Parser ( )
virtual

Definition at line 162 of file d2_parser.cc.

Member Function Documentation

◆ error() [1/2]

void isc::d2::D2Parser::error ( const location_type loc,
const std::string &  msg 
)
virtual

Report a syntax error.

Parameters
locwhere the syntax error is found.
msga description of the syntax error.

Definition at line 2888 of file d2_parser.cc.

Referenced by error(), and parse().

◆ error() [2/2]

void isc::d2::D2Parser::error ( const syntax_error err)

Report a syntax error.

Definition at line 2261 of file d2_parser.cc.

References error(), and isc::d2::D2Parser::syntax_error::location.

+ Here is the call graph for this function:

◆ make_ALGORITHM()

static symbol_type isc::d2::D2Parser::make_ALGORITHM ( const location_type l)
inlinestatic

Definition at line 1613 of file d2_parser.h.

Referenced by while().

◆ make_BOOLEAN()

static symbol_type isc::d2::D2Parser::make_BOOLEAN ( const bool &  v,
const location_type l 
)
inlinestatic

Definition at line 2108 of file d2_parser.h.

Referenced by while().

◆ make_COLON()

static symbol_type isc::d2::D2Parser::make_COLON ( const location_type l)
inlinestatic

Definition at line 1253 of file d2_parser.h.

Referenced by while().

◆ make_COMMA()

static symbol_type isc::d2::D2Parser::make_COMMA ( const location_type l)
inlinestatic

Definition at line 1238 of file d2_parser.h.

Referenced by while().

◆ make_COMMENT()

static symbol_type isc::d2::D2Parser::make_COMMENT ( const location_type l)
inlinestatic

Definition at line 1493 of file d2_parser.h.

Referenced by while().

◆ make_CONTROL_SOCKET()

static symbol_type isc::d2::D2Parser::make_CONTROL_SOCKET ( const location_type l)
inlinestatic

Definition at line 1673 of file d2_parser.h.

Referenced by while().

◆ make_D2_PARSER_error()

static symbol_type isc::d2::D2Parser::make_D2_PARSER_error ( const location_type l)
inlinestatic

Definition at line 1208 of file d2_parser.h.

◆ make_D2_PARSER_UNDEF()

static symbol_type isc::d2::D2Parser::make_D2_PARSER_UNDEF ( const location_type l)
inlinestatic

Definition at line 1223 of file d2_parser.h.

◆ make_DDNS_DOMAINS()

static symbol_type isc::d2::D2Parser::make_DDNS_DOMAINS ( const location_type l)
inlinestatic

Definition at line 1538 of file d2_parser.h.

Referenced by while().

◆ make_DEBUGLEVEL()

static symbol_type isc::d2::D2Parser::make_DEBUGLEVEL ( const location_type l)
inlinestatic

Definition at line 1823 of file d2_parser.h.

Referenced by while().

◆ make_DHCPDDNS()

static symbol_type isc::d2::D2Parser::make_DHCPDDNS ( const location_type l)
inlinestatic

Definition at line 1343 of file d2_parser.h.

Referenced by while().

◆ make_DIGEST_BITS()

static symbol_type isc::d2::D2Parser::make_DIGEST_BITS ( const location_type l)
inlinestatic

Definition at line 1628 of file d2_parser.h.

Referenced by while().

◆ make_DNS_SERVER_TIMEOUT()

static symbol_type isc::d2::D2Parser::make_DNS_SERVER_TIMEOUT ( const location_type l)
inlinestatic

Definition at line 1388 of file d2_parser.h.

Referenced by while().

◆ make_DNS_SERVERS()

static symbol_type isc::d2::D2Parser::make_DNS_SERVERS ( const location_type l)
inlinestatic

Definition at line 1568 of file d2_parser.h.

Referenced by while().

◆ make_END()

static symbol_type isc::d2::D2Parser::make_END ( const location_type l)
inlinestatic

Definition at line 1193 of file d2_parser.h.

Referenced by while().

◆ make_FLOAT()

static symbol_type isc::d2::D2Parser::make_FLOAT ( const double &  v,
const location_type l 
)
inlinestatic

Definition at line 2093 of file d2_parser.h.

Referenced by while().

◆ make_FLUSH()

static symbol_type isc::d2::D2Parser::make_FLUSH ( const location_type l)
inlinestatic

Definition at line 1853 of file d2_parser.h.

Referenced by while().

◆ make_FORWARD_DDNS()

static symbol_type isc::d2::D2Parser::make_FORWARD_DDNS ( const location_type l)
inlinestatic

Definition at line 1508 of file d2_parser.h.

Referenced by while().

◆ make_HOOKS_LIBRARIES()

static symbol_type isc::d2::D2Parser::make_HOOKS_LIBRARIES ( const location_type l)
inlinestatic

Definition at line 1718 of file d2_parser.h.

Referenced by while().

◆ make_HOSTNAME()

static symbol_type isc::d2::D2Parser::make_HOSTNAME ( const location_type l)
inlinestatic

Definition at line 1583 of file d2_parser.h.

Referenced by while().

◆ make_INTEGER()

static symbol_type isc::d2::D2Parser::make_INTEGER ( const int64_t &  v,
const location_type l 
)
inlinestatic

Definition at line 2078 of file d2_parser.h.

Referenced by while().

◆ make_IP_ADDRESS()

static symbol_type isc::d2::D2Parser::make_IP_ADDRESS ( const location_type l)
inlinestatic

Definition at line 1358 of file d2_parser.h.

Referenced by while().

◆ make_JSON()

static symbol_type isc::d2::D2Parser::make_JSON ( const location_type l)
inlinestatic

Definition at line 1463 of file d2_parser.h.

Referenced by while().

◆ make_KEY_NAME()

static symbol_type isc::d2::D2Parser::make_KEY_NAME ( const location_type l)
inlinestatic

Definition at line 1553 of file d2_parser.h.

Referenced by while().

◆ make_LCURLY_BRACKET()

static symbol_type isc::d2::D2Parser::make_LCURLY_BRACKET ( const location_type l)
inlinestatic

Definition at line 1298 of file d2_parser.h.

Referenced by while().

◆ make_LIBRARY()

static symbol_type isc::d2::D2Parser::make_LIBRARY ( const location_type l)
inlinestatic

Definition at line 1733 of file d2_parser.h.

Referenced by while().

◆ make_LOGGERS()

static symbol_type isc::d2::D2Parser::make_LOGGERS ( const location_type l)
inlinestatic

Definition at line 1763 of file d2_parser.h.

Referenced by while().

◆ make_LSQUARE_BRACKET()

static symbol_type isc::d2::D2Parser::make_LSQUARE_BRACKET ( const location_type l)
inlinestatic

Definition at line 1268 of file d2_parser.h.

Referenced by while().

◆ make_MAXSIZE()

static symbol_type isc::d2::D2Parser::make_MAXSIZE ( const location_type l)
inlinestatic

Definition at line 1868 of file d2_parser.h.

Referenced by while().

◆ make_MAXVER()

static symbol_type isc::d2::D2Parser::make_MAXVER ( const location_type l)
inlinestatic

Definition at line 1883 of file d2_parser.h.

Referenced by while().

◆ make_NAME()

static symbol_type isc::d2::D2Parser::make_NAME ( const location_type l)
inlinestatic

Definition at line 1778 of file d2_parser.h.

Referenced by while().

◆ make_NCR_FORMAT()

static symbol_type isc::d2::D2Parser::make_NCR_FORMAT ( const location_type l)
inlinestatic

Definition at line 1448 of file d2_parser.h.

Referenced by while().

◆ make_NCR_PROTOCOL()

static symbol_type isc::d2::D2Parser::make_NCR_PROTOCOL ( const location_type l)
inlinestatic

Definition at line 1403 of file d2_parser.h.

Referenced by while().

◆ make_NULL_TYPE()

static symbol_type isc::d2::D2Parser::make_NULL_TYPE ( const location_type l)
inlinestatic

Definition at line 1328 of file d2_parser.h.

Referenced by while().

◆ make_OUTPUT()

static symbol_type isc::d2::D2Parser::make_OUTPUT ( const location_type l)
inlinestatic

Definition at line 1808 of file d2_parser.h.

Referenced by while().

◆ make_OUTPUT_OPTIONS()

static symbol_type isc::d2::D2Parser::make_OUTPUT_OPTIONS ( const location_type l)
inlinestatic

Definition at line 1793 of file d2_parser.h.

Referenced by while().

◆ make_PARAMETERS()

static symbol_type isc::d2::D2Parser::make_PARAMETERS ( const location_type l)
inlinestatic

Definition at line 1748 of file d2_parser.h.

Referenced by while().

◆ make_PATTERN()

static symbol_type isc::d2::D2Parser::make_PATTERN ( const location_type l)
inlinestatic

Definition at line 1898 of file d2_parser.h.

Referenced by while().

◆ make_PORT()

static symbol_type isc::d2::D2Parser::make_PORT ( const location_type l)
inlinestatic

Definition at line 1373 of file d2_parser.h.

Referenced by while().

◆ make_RCURLY_BRACKET()

static symbol_type isc::d2::D2Parser::make_RCURLY_BRACKET ( const location_type l)
inlinestatic

Definition at line 1313 of file d2_parser.h.

Referenced by while().

◆ make_REVERSE_DDNS()

static symbol_type isc::d2::D2Parser::make_REVERSE_DDNS ( const location_type l)
inlinestatic

Definition at line 1523 of file d2_parser.h.

Referenced by while().

◆ make_RSQUARE_BRACKET()

static symbol_type isc::d2::D2Parser::make_RSQUARE_BRACKET ( const location_type l)
inlinestatic

Definition at line 1283 of file d2_parser.h.

Referenced by while().

◆ make_SECRET()

static symbol_type isc::d2::D2Parser::make_SECRET ( const location_type l)
inlinestatic

Definition at line 1643 of file d2_parser.h.

Referenced by while().

◆ make_SECRET_FILE()

static symbol_type isc::d2::D2Parser::make_SECRET_FILE ( const location_type l)
inlinestatic

Definition at line 1658 of file d2_parser.h.

Referenced by while().

◆ make_SEVERITY()

static symbol_type isc::d2::D2Parser::make_SEVERITY ( const location_type l)
inlinestatic

Definition at line 1838 of file d2_parser.h.

Referenced by while().

◆ make_SOCKET_NAME()

static symbol_type isc::d2::D2Parser::make_SOCKET_NAME ( const location_type l)
inlinestatic

Definition at line 1703 of file d2_parser.h.

Referenced by while().

◆ make_SOCKET_TYPE()

static symbol_type isc::d2::D2Parser::make_SOCKET_TYPE ( const location_type l)
inlinestatic

Definition at line 1688 of file d2_parser.h.

Referenced by while().

◆ make_STRING()

static symbol_type isc::d2::D2Parser::make_STRING ( const std::string &  v,
const location_type l 
)
inlinestatic

Definition at line 2063 of file d2_parser.h.

Referenced by while().

◆ make_SUB_DDNS_DOMAIN()

static symbol_type isc::d2::D2Parser::make_SUB_DDNS_DOMAIN ( const location_type l)
inlinestatic

Definition at line 1988 of file d2_parser.h.

Referenced by if().

◆ make_SUB_DDNS_DOMAINS()

static symbol_type isc::d2::D2Parser::make_SUB_DDNS_DOMAINS ( const location_type l)
inlinestatic

Definition at line 2003 of file d2_parser.h.

Referenced by if().

◆ make_SUB_DHCPDDNS()

static symbol_type isc::d2::D2Parser::make_SUB_DHCPDDNS ( const location_type l)
inlinestatic

Definition at line 1943 of file d2_parser.h.

Referenced by if().

◆ make_SUB_DNS_SERVER()

static symbol_type isc::d2::D2Parser::make_SUB_DNS_SERVER ( const location_type l)
inlinestatic

Definition at line 2018 of file d2_parser.h.

Referenced by if().

◆ make_SUB_DNS_SERVERS()

static symbol_type isc::d2::D2Parser::make_SUB_DNS_SERVERS ( const location_type l)
inlinestatic

Definition at line 2033 of file d2_parser.h.

◆ make_SUB_HOOKS_LIBRARY()

static symbol_type isc::d2::D2Parser::make_SUB_HOOKS_LIBRARY ( const location_type l)
inlinestatic

Definition at line 2048 of file d2_parser.h.

Referenced by if().

◆ make_SUB_TSIG_KEY()

static symbol_type isc::d2::D2Parser::make_SUB_TSIG_KEY ( const location_type l)
inlinestatic

Definition at line 1958 of file d2_parser.h.

Referenced by if().

◆ make_SUB_TSIG_KEYS()

static symbol_type isc::d2::D2Parser::make_SUB_TSIG_KEYS ( const location_type l)
inlinestatic

Definition at line 1973 of file d2_parser.h.

Referenced by if().

◆ make_TCP()

static symbol_type isc::d2::D2Parser::make_TCP ( const location_type l)
inlinestatic

Definition at line 1433 of file d2_parser.h.

Referenced by while().

◆ make_TOPLEVEL_DHCPDDNS()

static symbol_type isc::d2::D2Parser::make_TOPLEVEL_DHCPDDNS ( const location_type l)
inlinestatic

Definition at line 1928 of file d2_parser.h.

Referenced by if().

◆ make_TOPLEVEL_JSON()

static symbol_type isc::d2::D2Parser::make_TOPLEVEL_JSON ( const location_type l)
inlinestatic

Definition at line 1913 of file d2_parser.h.

Referenced by if().

◆ make_TSIG_KEYS()

static symbol_type isc::d2::D2Parser::make_TSIG_KEYS ( const location_type l)
inlinestatic

Definition at line 1598 of file d2_parser.h.

Referenced by while().

◆ make_UDP()

static symbol_type isc::d2::D2Parser::make_UDP ( const location_type l)
inlinestatic

Definition at line 1418 of file d2_parser.h.

Referenced by while().

◆ make_USER_CONTEXT()

static symbol_type isc::d2::D2Parser::make_USER_CONTEXT ( const location_type l)
inlinestatic

Definition at line 1478 of file d2_parser.h.

Referenced by while().

◆ operator()()

int isc::d2::D2Parser::operator() ( )

Parse.

An alias for parse ().

Returns
0 iff parsing succeeded.

Definition at line 510 of file d2_parser.cc.

References parse().

+ Here is the call graph for this function:

◆ parse()

int isc::d2::D2Parser::parse ( )
virtual

Parse.

Returns
0 iff parsing succeeded.

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 516 of file d2_parser.cc.

References isc::d2::D2Parser::basic_symbol< Base >::clear(), isc::d2::D2ParserContext::CONFIG, isc::d2::D2ParserContext::contextName(), isc::d2::D2ParserContext::CONTROL_SOCKET, isc::d2::D2ParserContext::ctx_, isc::d2::D2ParserContext::DDNS_DOMAIN, isc::d2::D2ParserContext::DDNS_DOMAINS, isc::d2::D2ParserContext::DHCPDDNS, isc::d2::D2ParserContext::DNS_SERVERS, isc::d2::D2Parser::basic_symbol< Base >::empty(), isc::d2::D2ParserContext::enter(), error(), isc::d2::D2ParserContext::FORWARD_DDNS, isc::d2::D2ParserContext::HOOKS_LIBRARIES, isc::d2::D2ParserContext::leave(), isc::d2::D2ParserContext::loc2pos(), isc::d2::D2Parser::basic_symbol< Base >::location, isc::d2::D2ParserContext::LOGGERS, isc::data::merge(), isc::d2::D2Parser::basic_symbol< Base >::move(), isc::d2::D2ParserContext::NCR_FORMAT, isc::d2::D2ParserContext::NCR_PROTOCOL, isc::d2::D2ParserContext::NO_KEYWORD, isc::d2::D2ParserContext::OUTPUT_OPTIONS, isc::d2::D2ParserContext::require(), isc::d2::D2ParserContext::REVERSE_DDNS, isc::d2::D2Parser::symbol_kind::S_BOOLEAN, isc::d2::D2Parser::symbol_kind::S_FLOAT, isc::d2::D2Parser::symbol_kind::S_INTEGER, isc::d2::D2Parser::symbol_kind::S_map_value, isc::d2::D2Parser::symbol_kind::S_ncr_protocol_value, isc::d2::D2Parser::symbol_kind::S_STRING, isc::d2::D2Parser::symbol_kind::S_value, isc::d2::D2Parser::symbol_kind::S_YYEOF, isc::d2::D2Parser::symbol_kind::S_YYerror, isc::d2::D2Parser::symbol_kind::S_YYUNDEF, isc::d2::D2ParserContext::stack_, isc::d2::D2ParserContext::TSIG_KEY, isc::d2::D2ParserContext::TSIG_KEYS, isc::d2::D2ParserContext::unique(), isc::d2::D2ParserContext::warnAboutExtraCommas(), YY_MOVE, YY_REDUCE_PRINT, YY_STACK_PRINT, YY_SYMBOL_PRINT, YYABORT, YYACCEPT, YYCDEBUG, YYERROR, yylex, and YYLLOC_DEFAULT.

Referenced by operator()().

+ Here is the call graph for this function:

◆ symbol_name()

std::string isc::d2::D2Parser::symbol_name ( symbol_kind_type  yysymbol)
static

The user-facing name of the symbol whose (internal) number is YYSYMBOL.

No bounds checking.

Definition at line 2307 of file d2_parser.cc.

Referenced by isc::d2::D2Parser::basic_symbol< Base >::name().

Member Data Documentation

◆ YYNTOKENS

const symbol_kind_type isc::d2::D2Parser::YYNTOKENS = symbol_kind::YYNTOKENS
static

The number of tokens.

Definition at line 796 of file d2_parser.h.

Referenced by isc::d2::D2Parser::context::expected_tokens().


The documentation for this class was generated from the following files: