example::Parser Class Reference

A Bison parser. More...

#include <parser.h>

List of all members.

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_typestate_stack_type
 State stack type.
typedef stack< semantic_typesemantic_stack_type
 Semantic value stack type.
typedef stack< location_typelocation_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_
Driverdriver

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...


Detailed Description

A Bison parser.

Definition at line 108 of file parser.h.


Member Typedef Documentation

typedef location example::Parser::location_type

Symbol locations.

Definition at line 128 of file parser.h.

typedef token::yytokentype example::Parser::token_type

Token type.

Definition at line 143 of file parser.h.

typedef int example::Parser::debug_level_type

Type for debugging levels.

Definition at line 159 of file parser.h.

typedef int example::Parser::state_type [private]

State numbers.

Definition at line 195 of file parser.h.

typedef stack<state_type> example::Parser::state_stack_type [private]

State stack type.

Definition at line 197 of file parser.h.

typedef stack<semantic_type> example::Parser::semantic_stack_type [private]

Semantic value stack type.

Definition at line 199 of file parser.h.

typedef stack<location_type> example::Parser::location_stack_type [private]

location stack type.

Definition at line 201 of file parser.h.

typedef unsigned char example::Parser::token_number_type [private]

Internal symbol numbers.

Definition at line 211 of file parser.h.

typedef signed char example::Parser::rhs_number_type [private]

A type to store symbol numbers and -1.

Definition at line 255 of file parser.h.


Constructor & Destructor Documentation

example::Parser::Parser ( class Driver driver_yyarg  ) 

Build a parser object.

Definition at line 159 of file parser.cc.

example::Parser::~Parser (  )  [virtual]

Definition at line 166 of file parser.cc.


Member Function Documentation

int example::Parser::parse (  )  [virtual]

Parse.

Returns:
0 iff parsing succeeded.

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

The current debugging stream.

Definition at line 273 of file parser.cc.

References yycdebug_.

void example::Parser::set_debug_stream ( std::ostream &   ) 

Set the current debugging stream.

Definition at line 279 of file parser.cc.

References yycdebug_.

Parser::debug_level_type example::Parser::debug_level (  )  const

The current debugging level.

Definition at line 286 of file parser.cc.

References yydebug_.

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.

Parameters:
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.

Parameters:
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]

Report a symbol value on the debug stream.

Parameters:
yytype The token type.
yyvaluep Its semantic value.
yylocationp Its location.

virtual void example::Parser::yy_symbol_print_ ( int  yytype,
const semantic_type yyvaluep,
const location_type yylocationp 
) [private, virtual]

Report a symbol on the debug stream.

Parameters:
yytype The token type.
yyvaluep Its semantic value.
yylocationp Its location.

virtual std::string example::Parser::yytnamerr_ ( const char *  n  )  [private, virtual]

Convert the symbol name n to a form suitable for a diagnostic.

Referenced by yysyntax_error_().

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.

Parameters:
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().


Member Data Documentation

state_stack_type example::Parser::yystate_stack_ [private]

The state stack.

Definition at line 204 of file parser.h.

Referenced by parse(), and yypop_().

semantic_stack_type example::Parser::yysemantic_stack_ [private]

The semantic value stack.

Definition at line 206 of file parser.h.

Referenced by parse(), and yypop_().

location_stack_type example::Parser::yylocation_stack_ [private]

The location stack.

Definition at line 208 of file parser.h.

Referenced by parse(), and yypop_().

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
  }
For a state, the index in yytable_ of its portion.

Definition at line 214 of file parser.h.

Referenced by parse(), and yysyntax_error_().

const signed char example::Parser::yypact_ninf_ = -15 [static, private]

Definition at line 215 of file parser.h.

Referenced by parse(), and yysyntax_error_().

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
  }
For a state, default rule to reduce.

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]

Initial value:

  {
       -15,   -15,   -15,    19,    20,    12,    13,   -15,    -5,   -15,
     -15
  }

Definition at line 222 of file parser.h.

Referenced by parse().

const signed char example::Parser::yydefgoto_ [static, private]

Initial value:

  {
        -1,    11,    12,    13,    14,    15,    16,    17,    18,    19,
       1
  }

Definition at line 223 of file parser.h.

Referenced by parse().

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
  }
What to do in a state.

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]

Definition at line 231 of file parser.h.

Referenced by parse().

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]

Initial value:

  {
         0,    27,     0,     3,     4,     5,     6,     7,    10,    11,
      16,    18,    19,    20,    21,    22,    23,    24,    25,    26,
      15,     6,    25,    21,    21,     9,    12,    13,    14,    10,
      11,     0,     3,    16,     0,     3,    16,    25,     8,    20,
      22,    22,    22,    23,    23
  }
For a state, its accessing symbol.

Definition at line 236 of file parser.h.

Referenced by parse().

const unsigned char example::Parser::yyr1_ [static, private]

Initial value:

  {
         0,    17,    18,    18,    19,    20,    20,    20,    21,    21,
      22,    22,    22,    23,    23,    23,    23,    24,    24,    24,
      25,    26,    27,    27,    27,    27,    27,    27,    27,    27,
      27
  }
For a rule, its LHS.

Definition at line 239 of file parser.h.

Referenced by parse().

const unsigned char example::Parser::yyr2_ [static, private]

Initial value:

  {
         0,     2,     1,     1,     1,     1,     1,     3,     1,     3,
       1,     2,     2,     1,     3,     3,     3,     1,     3,     3,
       1,     3,     0,     2,     2,     3,     3,     3,     3,     3,
       3
  }
For a rule, its RHS length.

Definition at line 241 of file parser.h.

Referenced by parse().

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]

A `-1'-separated list of the rules' RHS.

Definition at line 257 of file parser.h.

const unsigned char example::Parser::yyprhs_[] [static, private]

For each rule, the index of the first RHS symbol in yyrhs_.

Definition at line 259 of file parser.h.

const unsigned char example::Parser::yyrline_[] [static, private]

For each rule, its source line number.

Definition at line 261 of file parser.h.

const unsigned short int example::Parser::yytoken_number_[] [static, private]

For each scanner token number, its symbol number.

Definition at line 263 of file parser.h.

const int example::Parser::yyeof_ = 0 [static, private]

Definition at line 287 of file parser.h.

Referenced by parse().

const int example::Parser::yylast_ = 44 [static, private]

Definition at line 289 of file parser.h.

Referenced by parse(), and yysyntax_error_().

const int example::Parser::yynnts_ = 11 [static, private]

Definition at line 290 of file parser.h.

const int example::Parser::yyempty_ = -2 [static, private]

Definition at line 291 of file parser.h.

Referenced by parse().

const int example::Parser::yyfinal_ = 2 [static, private]

Definition at line 292 of file parser.h.

Referenced by parse().

const int example::Parser::yyterror_ = 1 [static, private]

Definition at line 293 of file parser.h.

Referenced by parse(), and yysyntax_error_().

const int example::Parser::yyerrcode_ = 256 [static, private]

Definition at line 294 of file parser.h.

const int example::Parser::yyntokens_ = 17 [static, private]

Definition at line 295 of file parser.h.

Referenced by parse(), and yysyntax_error_().

const unsigned int example::Parser::yyuser_token_number_max_ = 261 [static, private]

Definition at line 296 of file parser.h.

Referenced by yytranslate_().

const Parser::token_number_type example::Parser::yyundef_token_ = 2 [static, private]

Definition at line 297 of file parser.h.

Referenced by yytranslate_().

int example::Parser::yydebug_ [private]

Definition at line 300 of file parser.h.

Referenced by debug_level(), and set_debug_level().

std::ostream* example::Parser::yycdebug_ [private]

Definition at line 301 of file parser.h.

Referenced by debug_stream(), and set_debug_stream().

class Driver& example::Parser::driver [private]

Definition at line 305 of file parser.h.

Referenced by error(), and parse().


The documentation for this class was generated from the following files:
Generated on Mon Aug 20 13:34:21 2007 for Flex Bison C++ Example by  doxygen 1.5.2