/*
 File: pager_2.h
 Date and Time: Sat Jan 31 11:58:48 2015 
*/
#ifndef __pager_2_h__
#define __pager_2_h__ 1
#include "yacco2.h"
#include "yacco2_T_enumeration.h"
#include "yacco2_k_symbols.h"
#include "yacco2_err_symbols.h"
#include "yacco2_terminals.h"
#include "yacco2_characters.h"
// monolithic grammar: no thread
extern yacco2::State S1_Cpager_2;
namespace NS_pager_2 {
using namespace NS_yacco2_T_enum;// enumerate
using namespace yacco2;
struct fsm_rules_reuse_table_type{
 fsm_rules_reuse_table_type();
 int no_rules_entries_;
 Per_rule_s_reuse_table* per_rule_s_table_[10];
};
class Cpager_2: public yacco2::CAbs_fsm {
 public:
  enum rules_and_subrules{
   start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
   ,R_Rs_ = 569//start_of_rule_list + 0
    ,rhs1_Rs_ = 1
   ,R_Rg_ = 570//start_of_rule_list + 2
    ,rhs1_Rg_ = 2
    ,rhs2_Rg_ = 3
    ,rhs3_Rg_ = 4
    ,rhs4_Rg_ = 5
    ,rhs5_Rg_ = 6
    ,rhs6_Rg_ = 7
    ,rhs7_Rg_ = 8
    ,rhs8_Rg_ = 9
   ,R_Rw_ = 571//start_of_rule_list + 4
    ,rhs1_Rw_ = 10
   ,R_Rv_ = 572//start_of_rule_list + 6
    ,rhs1_Rv_ = 11
   ,R_Rx_ = 573//start_of_rule_list + 8
    ,rhs1_Rx_ = 12
    ,rhs2_Rx_ = 13
   ,R_Ry_ = 574//start_of_rule_list + 10
    ,rhs1_Ry_ = 14
    ,rhs2_Ry_ = 15
   ,R_Ru_ = 575//start_of_rule_list + 12
    ,rhs1_Ru_ = 16
    ,rhs2_Ru_ = 17
   ,R_Re_ = 576//start_of_rule_list + 14
    ,rhs1_Re_ = 18
    ,rhs2_Re_ = 19
    ,rhs3_Re_ = 20
    ,rhs4_Re_ = 21
   ,R_Rc_ = 577//start_of_rule_list + 16
    ,rhs1_Rc_ = 22
    ,rhs2_Rc_ = 23
   ,R_Rp_ = 578//start_of_rule_list + 18
    ,rhs1_Rp_ = 24
  };
  //no of la sets = 7
  //no of states = 40
  Cpager_2();
  ~Cpager_2();
  void op();
  bool failed();
  void reduce_rhs_of_rule
      (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
  fsm_rules_reuse_table_type fsm_rules_reuse_table;
  static int rhs_to_rules_mapping_[25];
 };
struct Rs;
struct Rg;
struct Rw;
struct Rv;
struct Rx;
struct Ry;
struct Ru;
struct Re;
struct Rc;
struct Rp;
struct Rs:public yacco2::CAbs_lr1_sym {
  Rs(yacco2::Parser* P);
  public:
};

struct Rg:public yacco2::CAbs_lr1_sym {
  Rg(yacco2::Parser* P);
  public:
};

struct Rw:public yacco2::CAbs_lr1_sym {
  Rw(yacco2::Parser* P);
  public:
};

struct Rv:public yacco2::CAbs_lr1_sym {
  Rv(yacco2::Parser* P);
  public:
};

struct Rx:public yacco2::CAbs_lr1_sym {
  Rx(yacco2::Parser* P);
  public:
};

struct Ry:public yacco2::CAbs_lr1_sym {
  Ry(yacco2::Parser* P);
  public:
};

struct Ru:public yacco2::CAbs_lr1_sym {
  Ru(yacco2::Parser* P);
  public:
};

struct Re:public yacco2::CAbs_lr1_sym {
  Re(yacco2::Parser* P);
  public:
};

struct Rc:public yacco2::CAbs_lr1_sym {
  Rc(yacco2::Parser* P);
  public:
};

struct Rp:public yacco2::CAbs_lr1_sym {
  Rp(yacco2::Parser* P);
  public:
};

} // end of namespace

#endif
