BALL  1.5.0
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
10 #endif
11 
12 namespace BALL
13 {
14 
23  {
24  public:
25 
32  {
33  public:
34 
38 
40  typedef list<SyntaxTree*>::iterator Iterator;
41 
43  typedef list<SyntaxTree*>::const_iterator ConstIterator;
44 
46 
50 
54 
57  SyntaxTree(const char* predicate_name, const char* args);
58 
62 
65  virtual ~SyntaxTree();
66 
68 
71 
76  virtual void clear();
77 
79 
83 
87 
91 
95 
98  ConstIterator end() const;
99 
101 
105  void dump(std::ostream& is = std::cout, Size depth = 0) const;
107 
114 
118 
122 
125  bool evaluated;
126 
129  bool negate;
130 
134 
137  list<SyntaxTree*> children;
139  };
140 
141 
145 
148 
151 
155 
159 
163  void parse(const String& s);
164 
168  const SyntaxTree& getSyntaxTree() const;
169 
171 
172  struct State
173  {
176  const char* buffer;
178  };
179 
180  static State state;
181 
182  protected:
185  };
186 } // namespace BALL
187 
188 #endif // BALL_KERNEL_EXPRESSIONPARSER_H
BALL::ExpressionParser::parse
void parse(const String &s)
BALL_EXPORT
#define BALL_EXPORT
Definition: COMMON/global.h:50
BALL::ExpressionParser::SyntaxTree::end
ConstIterator end() const
BALL::ExpressionParser::SyntaxTree::SyntaxTree
SyntaxTree(SyntaxTree *left, SyntaxTree *right, ExpressionTree::Type type)
BALL::ExpressionParser::SyntaxTree::Iterator
list< SyntaxTree * >::iterator Iterator
An iterator for the children of a given node.
Definition: expressionParser.h:40
BALL::ExpressionParser::syntax_tree_
SyntaxTree * syntax_tree_
Definition: expressionParser.h:183
BALL::ExpressionParser::SyntaxTree::end
Iterator end()
BALL::ExpressionParser::SyntaxTree::predicate
String predicate
Definition: expressionParser.h:117
BALL::ExpressionParser::SyntaxTree::negate
bool negate
Definition: expressionParser.h:129
BALL::ExpressionParser::getSyntaxTree
const SyntaxTree & getSyntaxTree() const
BALL::ExpressionParser::SyntaxTree
Definition: expressionParser.h:32
BALL::ExpressionParser::SyntaxTree::expression
String expression
Definition: expressionParser.h:113
BALL::String
Definition: string.h:57
BALL::ExpressionParser::current_parser_
static ExpressionParser * current_parser_
Definition: expressionParser.h:184
BALL
Definition: constants.h:13
BALL::ExpressionParser::SyntaxTree::evaluated
bool evaluated
Definition: expressionParser.h:125
BALL::ExpressionParser::SyntaxTree::~SyntaxTree
virtual ~SyntaxTree()
BALL::ExpressionParser::SyntaxTree::SyntaxTree
SyntaxTree(const char *predicate_name, const char *args)
BALL::ExpressionParser::SyntaxTree::begin
ConstIterator begin() const
BALL::ExpressionParser::SyntaxTree::children
list< SyntaxTree * > children
Definition: expressionParser.h:137
BALL::ExpressionParser::State::tree
SyntaxTree * tree
Definition: expressionParser.h:177
BALL_SIZE_TYPE
BALL::ExpressionParser::ExpressionParser
ExpressionParser(const ExpressionParser &parser)
BALL::ExpressionParser::SyntaxTree::begin
Iterator begin()
BALL::ExpressionParser::SyntaxTree::clear
virtual void clear()
BALL::ExpressionTree::Type
Type
Definition: expressionTree.h:39
BALL::ExpressionParser::SyntaxTree::argument
String argument
Definition: expressionParser.h:121
BALL::ExpressionParser::State
Definition: expressionParser.h:173
BALL::ExpressionParser::SyntaxTree::type
ExpressionTree::Type type
Definition: expressionParser.h:133
BALL::ExpressionParser::state
static State state
Definition: expressionParser.h:180
BALL::ExpressionParser::State::current_parser
ExpressionParser * current_parser
Definition: expressionParser.h:175
BALL::ExpressionParser::State::char_count
Size char_count
Definition: expressionParser.h:174
BALL::ExpressionParser
Definition: expressionParser.h:23
BALL::ExpressionParser::SyntaxTree::SyntaxTree
SyntaxTree()
BALL::ExpressionParser::~ExpressionParser
~ExpressionParser()
BALL::ExpressionParser::SyntaxTree::ConstIterator
list< SyntaxTree * >::const_iterator ConstIterator
A const iterator for the children of a given node.
Definition: expressionParser.h:43
expressionTree.h
BALL::ExpressionParser::State::buffer
const char * buffer
Definition: expressionParser.h:176
BALL::ExpressionParser::SyntaxTree::dump
void dump(std::ostream &is=std::cout, Size depth=0) const
BALL::ExpressionParser::ExpressionParser
ExpressionParser()