BALL
1.5.0
include
BALL
KERNEL
expressionParser.h
Go to the documentation of this file.
1
// -*- Mode: C++; tab-width: 2; -*-
2
// vi: set ts=2:
3
//
4
5
#ifndef BALL_KERNEL_EXPRESSIONPARSER_H
6
#define BALL_KERNEL_EXPRESSIONPARSER_H
7
8
#ifndef BALL_KERNEL_EXPRESSION_TREE_H
9
# include <
BALL/KERNEL/expressionTree.h
>
10
#endif
11
12
namespace
BALL
13
{
14
22
class
BALL_EXPORT
ExpressionParser
23
{
24
public
:
25
31
class
BALL_EXPORT
SyntaxTree
32
{
33
public
:
34
38
40
typedef
list<SyntaxTree*>::iterator
Iterator
;
41
43
typedef
list<SyntaxTree*>::const_iterator
ConstIterator
;
44
46
50
53
SyntaxTree
();
54
57
SyntaxTree
(
const
char
* predicate_name,
const
char
* args);
58
61
SyntaxTree
(
SyntaxTree
* left,
SyntaxTree
* right,
ExpressionTree::Type
type);
62
65
virtual
~
SyntaxTree
();
66
68
71
76
virtual
void
clear();
77
79
83
86
Iterator
begin();
87
90
Iterator
end();
91
94
ConstIterator
begin()
const
;
95
98
ConstIterator
end()
const
;
99
101
105
void
dump(std::ostream& is = std::cout,
Size
depth = 0)
const
;
107
113
String
expression
;
114
117
String
predicate
;
118
121
String
argument
;
122
125
bool
evaluated
;
126
129
bool
negate
;
130
133
ExpressionTree::Type
type
;
134
137
list<SyntaxTree*>
children
;
139
};
140
141
145
147
ExpressionParser
();
148
150
ExpressionParser
(
const
ExpressionParser
& parser);
151
153
~
ExpressionParser
();
155
159
163
void
parse(
const
String
& s);
164
168
const
SyntaxTree
& getSyntaxTree()
const
;
169
171
172
struct
State
173
{
174
Size
char_count
;
175
ExpressionParser
*
current_parser
;
176
const
char
*
buffer
;
177
SyntaxTree
*
tree
;
178
};
179
180
static
State
state
;
181
182
protected
:
183
SyntaxTree
*
syntax_tree_
;
184
static
ExpressionParser
*
current_parser_
;
185
};
186
}
// namespace BALL
187
188
#endif // BALL_KERNEL_EXPRESSIONPARSER_H
BALL_EXPORT
#define BALL_EXPORT
Definition:
COMMON/global.h:50
BALL::ExpressionParser
Definition:
expressionParser.h:22
BALL::ExpressionParser::SyntaxTree::expression
String expression
Definition:
expressionParser.h:113
BALL::ExpressionParser::SyntaxTree::children
list< SyntaxTree * > children
Definition:
expressionParser.h:137
BALL_SIZE_TYPE
BALL::ExpressionParser::State::char_count
Size char_count
Definition:
expressionParser.h:174
BALL
Definition:
constants.h:12
BALL::ExpressionParser::SyntaxTree::type
ExpressionTree::Type type
Definition:
expressionParser.h:133
BALL::ExpressionTree::Type
Type
Definition:
expressionTree.h:38
BALL::String
Definition:
string.h:56
BALL::ExpressionParser::state
static State state
Definition:
expressionParser.h:180
BALL::ExpressionParser::SyntaxTree
Definition:
expressionParser.h:31
BALL::ExpressionParser::current_parser_
static ExpressionParser * current_parser_
Definition:
expressionParser.h:184
BALL::ExpressionParser::SyntaxTree::Iterator
list< SyntaxTree * >::iterator Iterator
An iterator for the children of a given node.
Definition:
expressionParser.h:40
BALL::ExpressionParser::State::buffer
const char * buffer
Definition:
expressionParser.h:176
BALL::ExpressionParser::SyntaxTree::negate
bool negate
Definition:
expressionParser.h:129
BALL::ExpressionParser::SyntaxTree::argument
String argument
Definition:
expressionParser.h:121
BALL::ExpressionParser::SyntaxTree::evaluated
bool evaluated
Definition:
expressionParser.h:125
BALL::ExpressionParser::State::current_parser
ExpressionParser * current_parser
Definition:
expressionParser.h:175
expressionTree.h
BALL::ExpressionParser::SyntaxTree::ConstIterator
list< SyntaxTree * >::const_iterator ConstIterator
A const iterator for the children of a given node.
Definition:
expressionParser.h:43
BALL::ExpressionParser::State::tree
SyntaxTree * tree
Definition:
expressionParser.h:177
BALL::ExpressionParser::State
Definition:
expressionParser.h:172
BALL::ExpressionParser::SyntaxTree::predicate
String predicate
Definition:
expressionParser.h:117
BALL::ExpressionParser::syntax_tree_
SyntaxTree * syntax_tree_
Definition:
expressionParser.h:183
Generated by
1.8.16