~ubuntu-branches/ubuntu/trusty/c++-annotations/trusty

« back to all changes in this revision

Viewing changes to yo/concrete/bisonc++/parser/parserbase.h

  • Committer: Package Import Robot
  • Author(s): tony mancill, Frank B. Brokken, tony mancill
  • Date: 2012-02-28 00:50:21 UTC
  • mfrom: (1.1.19)
  • Revision ID: package-import@ubuntu.com-20120228005021-sz7nnodntkvgh7qf
Tags: 9.2.1-1
[ Frank B. Brokken ]
* New upstream release (using flexc++, reauthored polymorphic semantic
  values and unrestricted unions). Upstream release 9.2.0 is implied by
  this release.

[ tony mancill ]
* Set Standards-Version to 3.9.3.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// Generated by Bisonc++ V2.4.7 on Fri, 04 Sep 2009 19:56:31 +0200
2
 
 
3
 
#ifndef ParserBase_h_included
4
 
#define ParserBase_h_included
5
 
 
6
 
#include <vector>
7
 
#include <iostream>
8
 
 
9
 
 
10
 
namespace // anonymous
11
 
{
12
 
    struct PI__;
13
 
}
14
 
 
15
 
 
16
 
class ParserBase
17
 
{
18
 
    public:
19
 
// $insert tokens
20
 
 
21
 
    // Symbolic tokens:
22
 
    enum Tokens__
23
 
    {
24
 
        INT = 257,
25
 
        DOUBLE,
26
 
        UnaryMinus = 261,
27
 
    };
28
 
 
29
 
// $insert STYPE
30
 
union STYPE__
31
 
{
32
 
 int i;
33
 
 double d;
34
 
};
35
 
 
36
 
 
37
 
    private:
38
 
        int d_stackIdx__;
39
 
        std::vector<size_t>   d_stateStack__;
40
 
        std::vector<STYPE__>  d_valueStack__;
41
 
 
42
 
    protected:
43
 
        enum Return__
44
 
        {
45
 
            PARSE_ACCEPT__ = 0,   // values used as parse()'s return values
46
 
            PARSE_ABORT__  = 1
47
 
        };
48
 
        enum ErrorRecovery__
49
 
        {
50
 
            DEFAULT_RECOVERY_MODE__,
51
 
            UNEXPECTED_TOKEN__,
52
 
        };
53
 
        bool        d_debug__;
54
 
        size_t      d_nErrors__;
55
 
        size_t      d_requiredTokens__;
56
 
        size_t      d_acceptedTokens__;
57
 
        int         d_token__;
58
 
        int         d_nextToken__;
59
 
        size_t      d_state__;
60
 
        STYPE__    *d_vsp__;
61
 
        STYPE__     d_val__;
62
 
        STYPE__     d_nextVal__;
63
 
 
64
 
        ParserBase();
65
 
 
66
 
        void ABORT() const;
67
 
        void ACCEPT() const;
68
 
        void ERROR() const;
69
 
        void clearin();
70
 
        bool debug() const;
71
 
        void pop__(size_t count = 1);
72
 
        void push__(size_t nextState);
73
 
        void popToken__();
74
 
        void pushToken__(int token);
75
 
        void reduce__(PI__ const &productionInfo);
76
 
        void errorVerbose__();
77
 
        size_t top__() const;
78
 
 
79
 
    public:
80
 
        void setDebug(bool mode);
81
 
};
82
 
 
83
 
inline bool ParserBase::debug() const
84
 
{
85
 
    return d_debug__;
86
 
}
87
 
 
88
 
inline void ParserBase::setDebug(bool mode)
89
 
{
90
 
    d_debug__ = mode;
91
 
}
92
 
 
93
 
inline void ParserBase::ABORT() const
94
 
{
95
 
    throw PARSE_ABORT__;
96
 
}
97
 
 
98
 
inline void ParserBase::ACCEPT() const
99
 
{
100
 
    throw PARSE_ACCEPT__;
101
 
}
102
 
 
103
 
inline void ParserBase::ERROR() const
104
 
{
105
 
    throw UNEXPECTED_TOKEN__;
106
 
}
107
 
 
108
 
 
109
 
// As a convenience, when including ParserBase.h its symbols are available as
110
 
// symbols in the class Parser, too.
111
 
#define Parser ParserBase
112
 
 
113
 
 
114
 
#endif