#include <parser.h>
Public Types | |
typedef location | location_type |
Symbol locations. | |
typedef token::yytokentype | token_type |
Token type. | |
typedef int | debug_level_type |
Type for debugging levels. | |
Public Member Functions | |
Parser (class Driver &driver_yyarg) | |
Build a parser object. | |
virtual | ~Parser () |
virtual int | parse () |
Parse. | |
std::ostream & | debug_stream () const |
The current debugging stream. | |
void | set_debug_stream (std::ostream &) |
Set the current debugging stream. | |
debug_level_type | debug_level () const |
The current debugging level. | |
void | set_debug_level (debug_level_type l) |
Set the current debugging level. | |
Private Types | |
typedef int | state_type |
State numbers. | |
typedef stack< state_type > | state_stack_type |
State stack type. | |
typedef stack< semantic_type > | semantic_stack_type |
Semantic value stack type. | |
typedef stack< location_type > | location_stack_type |
location stack type. | |
typedef unsigned char | token_number_type |
Internal symbol numbers. | |
typedef signed char | rhs_number_type |
A type to store symbol numbers and -1. | |
Private Member Functions | |
virtual void | error (const location_type &loc, const std::string &msg) |
Report a syntax error. | |
virtual std::string | yysyntax_error_ (int yystate, int tok) |
Generate an error message. | |
virtual void | yy_symbol_value_print_ (int yytype, const semantic_type *yyvaluep, const location_type *yylocationp) |
Report a symbol value on the debug stream. | |
virtual void | yy_symbol_print_ (int yytype, const semantic_type *yyvaluep, const location_type *yylocationp) |
Report a symbol on the debug stream. | |
virtual std::string | yytnamerr_ (const char *n) |
Convert the symbol name n to a form suitable for a diagnostic. | |
virtual void | yy_reduce_print_ (int r) |
Report on the debug stream that the rule r is going to be reduced. | |
virtual void | yystack_print_ () |
Print the state stack on the debug stream. | |
token_number_type | yytranslate_ (int t) |
Convert a scanner token number t to a symbol number. | |
void | yydestruct_ (const char *yymsg, int yytype, semantic_type *yyvaluep, location_type *yylocationp) |
Reclaim the memory associated to a symbol. | |
void | yypop_ (unsigned int n=1) |
Pop n symbols the three stacks. | |
Private Attributes | |
state_stack_type | yystate_stack_ |
The state stack. | |
semantic_stack_type | yysemantic_stack_ |
The semantic value stack. | |
location_stack_type | yylocation_stack_ |
The location stack. | |
int | yydebug_ |
std::ostream * | yycdebug_ |
class Driver & | driver |
Static Private Attributes | |
static const signed char | yypact_ [] |
For a state, the index in yytable_ of its portion. | |
static const signed char | yypact_ninf_ = -15 |
static const unsigned char | yydefact_ [] |
For a state, default rule to reduce. | |
static const signed char | yypgoto_ [] |
static const signed char | yydefgoto_ [] |
static const unsigned char | yytable_ [] |
What to do in a state. | |
static const signed char | yytable_ninf_ = -1 |
static const signed char | yycheck_ [] |
static const unsigned char | yystos_ [] |
For a state, its accessing symbol. | |
static const unsigned char | yyr1_ [] |
For a rule, its LHS. | |
static const unsigned char | yyr2_ [] |
For a rule, its RHS length. | |
static const char *const | yytname_ [] |
For a symbol, its name in clear. | |
static const rhs_number_type | yyrhs_ [] |
A `-1'-separated list of the rules' RHS. | |
static const unsigned char | yyprhs_ [] |
For each rule, the index of the first RHS symbol in yyrhs_. | |
static const unsigned char | yyrline_ [] |
For each rule, its source line number. | |
static const unsigned short int | yytoken_number_ [] |
For each scanner token number, its symbol number. | |
static const int | yyeof_ = 0 |
static const int | yylast_ = 44 |
static const int | yynnts_ = 11 |
static const int | yyempty_ = -2 |
static const int | yyfinal_ = 2 |
static const int | yyterror_ = 1 |
static const int | yyerrcode_ = 256 |
static const int | yyntokens_ = 17 |
static const unsigned int | yyuser_token_number_max_ = 261 |
static const token_number_type | yyundef_token_ = 2 |
Classes | |
union | semantic_type |
Symbol semantic values. More... | |
struct | token |
Tokens. More... |
Definition at line 108 of file parser.h.
typedef int example::Parser::debug_level_type |
typedef int example::Parser::state_type [private] |
typedef stack<state_type> example::Parser::state_stack_type [private] |
typedef stack<semantic_type> example::Parser::semantic_stack_type [private] |
typedef stack<location_type> example::Parser::location_stack_type [private] |
typedef unsigned char example::Parser::token_number_type [private] |
typedef signed char example::Parser::rhs_number_type [private] |
example::Parser::Parser | ( | class Driver & | driver_yyarg | ) |
int example::Parser::parse | ( | ) | [virtual] |
Parse.
Look-ahead and look-ahead in internal form.
Semantic value of the look-ahead.
Location of the look-ahead.
The locations where the error started and ended.
$$.
$.
Definition at line 299 of file parser.cc.
References example::location::begin, example::Driver::calc, example::Parser::semantic_type::calcnode, driver, example::location::end, error(), CalcContext::existsVariable(), CalcContext::expressions, example::position::filename, CalcContext::getVariable(), example::stack< T, S >::push(), example::Driver::streamname, CalcContext::variables, YY_REDUCE_PRINT, YY_STACK_PRINT, YY_SYMBOL_PRINT, YYABORT, YYCDEBUG, yycheck_, yydefact_, yydefgoto_, yydestruct_(), yyempty_, yyeof_, YYERROR, yyfinal_, yylast_, yylex, YYLLOC_DEFAULT, yylocation_stack_, yyntokens_, yypact_, yypact_ninf_, yypgoto_, yypop_(), yyr1_, yyr2_, yysemantic_stack_, yystate_stack_, yystos_, yysyntax_error_(), yytable_, yytable_ninf_, yyterror_, and yytranslate_().
Referenced by example::Driver::parse_stream().
std::ostream & example::Parser::debug_stream | ( | ) | const |
void example::Parser::set_debug_stream | ( | std::ostream & | o | ) |
Parser::debug_level_type example::Parser::debug_level | ( | ) | const |
void example::Parser::set_debug_level | ( | debug_level_type | l | ) |
Set the current debugging level.
Definition at line 292 of file parser.cc.
References yydebug_.
Referenced by example::Driver::parse_stream().
void example::Parser::error | ( | const location_type & | loc, | |
const std::string & | msg | |||
) | [private, virtual] |
Report a syntax error.
loc | where the syntax error is found. | |
msg | a description of the syntax error. |
Definition at line 1083 of file parser.cc.
References driver, and example::Driver::error().
Referenced by parse().
std::string example::Parser::yysyntax_error_ | ( | int | yystate, | |
int | tok | |||
) | [private, virtual] |
Generate an error message.
state | the state where the error occurred. | |
tok | the look-ahead token. |
Definition at line 785 of file parser.cc.
References YY_, yycheck_, yylast_, yyntokens_, yypact_, yypact_ninf_, yyterror_, yytname_, yytnamerr_(), and YYUSE.
Referenced by parse().
virtual void example::Parser::yy_symbol_value_print_ | ( | int | yytype, | |
const semantic_type * | yyvaluep, | |||
const location_type * | yylocationp | |||
) | [private, virtual] |
virtual void example::Parser::yy_symbol_print_ | ( | int | yytype, | |
const semantic_type * | yyvaluep, | |||
const location_type * | yylocationp | |||
) | [private, virtual] |
virtual std::string example::Parser::yytnamerr_ | ( | const char * | n | ) | [private, virtual] |
virtual void example::Parser::yy_reduce_print_ | ( | int | r | ) | [private, virtual] |
Report on the debug stream that the rule r is going to be reduced.
virtual void example::Parser::yystack_print_ | ( | ) | [private, virtual] |
Print the state stack on the debug stream.
Parser::token_number_type example::Parser::yytranslate_ | ( | int | t | ) | [private] |
Convert a scanner token number t to a symbol number.
Definition at line 1026 of file parser.cc.
References yyundef_token_, and yyuser_token_number_max_.
Referenced by parse().
void example::Parser::yydestruct_ | ( | const char * | yymsg, | |
int | yytype, | |||
semantic_type * | yyvaluep, | |||
location_type * | yylocationp | |||
) | [inline, private] |
Reclaim the memory associated to a symbol.
yymsg | Why this token is reclaimed. | |
yytype | The symbol type. | |
yyvaluep | Its semantic value. | |
yylocationp | Its location. |
Definition at line 202 of file parser.cc.
References example::Parser::semantic_type::calcnode, example::Parser::semantic_type::stringVal, YY_SYMBOL_PRINT, and YYUSE.
Referenced by parse().
void example::Parser::yypop_ | ( | unsigned int | n = 1 |
) | [inline, private] |
Pop n symbols the three stacks.
Definition at line 265 of file parser.cc.
References example::stack< T, S >::pop(), yylocation_stack_, yysemantic_stack_, and yystate_stack_.
Referenced by parse().
const signed char example::Parser::yypact_ [static, private] |
Initial value:
{ -15, 0, -15, -15, -15, -15, -14, 16, 27, 27, -15, -15, -15, -15, -1, -15, 23, 8, 9, 14, 16, -15, 5, -1, -1, 27, 16, 16, 16, 16, 16, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, 23, 23 }
Definition at line 214 of file parser.h.
Referenced by parse(), and yysyntax_error_().
const signed char example::Parser::yypact_ninf_ = -15 [static, private] |
const unsigned char example::Parser::yydefact_ [static, private] |
Initial value:
{ 22, 0, 1, 24, 2, 3, 4, 0, 0, 0, 23, 5, 6, 8, 10, 13, 17, 20, 0, 0, 0, 4, 0, 11, 12, 0, 0, 0, 0, 0, 0, 30, 29, 28, 27, 26, 25, 21, 7, 9, 14, 15, 16, 18, 19 }
Unlessyytable_ specifies something else to do. Zero means the default is an error.
Definition at line 220 of file parser.h.
Referenced by parse().
const signed char example::Parser::yypgoto_ [static, private] |
const signed char example::Parser::yydefgoto_ [static, private] |
const unsigned char example::Parser::yytable_ [static, private] |
Initial value:
{ 2, 20, 22, 3, 4, 5, 6, 7, 25, 31, 8, 9, 32, 38, 34, 37, 10, 35, 29, 30, 4, 5, 21, 7, 0, 33, 8, 9, 23, 24, 36, 4, 5, 21, 7, 26, 27, 28, 40, 41, 42, 0, 43, 44, 39 }
yytable_[yypact_[s]]: what to do in state s.
Definition at line 230 of file parser.h.
Referenced by parse().
const signed char example::Parser::yytable_ninf_ = -1 [static, private] |
const signed char example::Parser::yycheck_ [static, private] |
Initial value:
{ 0, 15, 7, 3, 4, 5, 6, 7, 9, 0, 10, 11, 3, 8, 0, 20, 16, 3, 10, 11, 4, 5, 6, 7, -1, 16, 10, 11, 8, 9, 16, 4, 5, 6, 7, 12, 13, 14, 26, 27, 28, -1, 29, 30, 25 }
Definition at line 233 of file parser.h.
Referenced by parse(), and yysyntax_error_().
const unsigned char example::Parser::yystos_ [static, private] |
const unsigned char example::Parser::yyr1_ [static, private] |
const unsigned char example::Parser::yyr2_ [static, private] |
const char* const example::Parser::yytname_[] [static, private] |
For a symbol, its name in clear.
Definition at line 245 of file parser.h.
Referenced by yysyntax_error_().
const rhs_number_type example::Parser::yyrhs_[] [static, private] |
const unsigned char example::Parser::yyprhs_[] [static, private] |
const unsigned char example::Parser::yyrline_[] [static, private] |
const unsigned short int example::Parser::yytoken_number_[] [static, private] |
const int example::Parser::yyeof_ = 0 [static, private] |
const int example::Parser::yylast_ = 44 [static, private] |
const int example::Parser::yynnts_ = 11 [static, private] |
const int example::Parser::yyempty_ = -2 [static, private] |
const int example::Parser::yyfinal_ = 2 [static, private] |
const int example::Parser::yyterror_ = 1 [static, private] |
const int example::Parser::yyerrcode_ = 256 [static, private] |
const int example::Parser::yyntokens_ = 17 [static, private] |
const unsigned int example::Parser::yyuser_token_number_max_ = 261 [static, private] |
const Parser::token_number_type example::Parser::yyundef_token_ = 2 [static, private] |
int example::Parser::yydebug_ [private] |
std::ostream* example::Parser::yycdebug_ [private] |
class Driver& example::Parser::driver [private] |