Classes | |
struct | ExpressionGrammar |
The boost::spirit expression parser grammar. More... | |
class | PNConstant |
Constant value nodes of the parse tree. More... | |
class | PNVariable |
Parse tree node representing a variable place-holder. More... | |
class | PNFunction |
Parse tree node representing a function place-holder. More... | |
class | PNUnaryArithmExpr |
Parse tree node representing an unary operator: '+', '-', '!' or "not". More... | |
class | PNBinaryArithmExpr |
Parse tree node representing a binary operators: +, -, * and / for numeric values. More... | |
class | PNCastExpr |
Parse tree node handling type conversions within the tree. More... | |
class | PNBinaryComparisonExpr |
Parse tree node representing a binary comparison operator: ==, =, !=, <, >, >=, <=, =>, =<. More... | |
class | PNBinaryLogicExpr |
Parse tree node representing a binary logic operator: and, or, &&, ||. More... | |
Typedefs | |
typedef std::string::const_iterator | InputIterT |
Iterator type used by spirit's parsers. | |
typedef tree_match< InputIterT > | ParseTreeMatchT |
Resulting match tree after parsing. | |
typedef ParseTreeMatchT::const_tree_iterator | TreeIterT |
The iterator of the match tree used in build_expr(). | |
Enumerations | |
enum | parser_ids { boolean_const_id = 1, integer_const_id, long_const_id, double_const_id, string_const_id, constant_id, function_call_id, function_identifier_id, varname_id, atom_expr_id, unary_expr_id, mul_expr_id, add_expr_id, cast_expr_id, cast_spec_id, comp_expr_id, and_expr_id, or_expr_id, expr_id, exprlist_id } |
This enum specifies ids for the parse tree nodes created for each rule. More... | |
Functions | |
distinct_parser | keyword_p ("a-zA-Z0-9_") |
Keyword parser used for matching words with () and spaces as separators. | |
static ParseNode * | build_expr (TreeIterT const &i) |
Build_expr is the constructor method to create a parse tree from the AST-tree returned by the spirit parser. | |
ParseTreeList | build_exprlist (TreeIterT const &i) |
build_exprlist constructs the vector holding the ParseNode parse tree for each parse tree. | |
static void | tree_dump_xml (std::ostream &os, const std::string &input, const tree_parse_info< InputIterT > &info) |
Uses boost::spirit function to convert the parse tree into a XML document. |
This enum specifies ids for the parse tree nodes created for each rule.
Definition at line 54 of file ExpressionParser.cc.
static ParseNode* stx::Grammar::build_expr | ( | TreeIterT const & | i | ) | [static] |
Build_expr is the constructor method to create a parse tree from the AST-tree returned by the spirit parser.
Definition at line 972 of file ExpressionParser.cc.
References add_expr_id, and_expr_id, stx::AnyScalar::ATTRTYPE_BOOL, stx::AnyScalar::ATTRTYPE_DOUBLE, stx::AnyScalar::ATTRTYPE_INTEGER, stx::AnyScalar::ATTRTYPE_INVALID, stx::AnyScalar::ATTRTYPE_LONG, stx::AnyScalar::ATTRTYPE_STRING, boolean_const_id, cast_spec_id, comp_expr_id, double_const_id, stx::ParseNode::evaluate_const(), exprlist_id, function_identifier_id, integer_const_id, long_const_id, mul_expr_id, or_expr_id, string_const_id, stx::AnyScalar::stringToType(), unary_expr_id, and varname_id.
Referenced by build_exprlist(), and stx::parseExpression().
ParseTreeList stx::Grammar::build_exprlist | ( | TreeIterT const & | i | ) |
build_exprlist constructs the vector holding the ParseNode parse tree for each parse tree.
Definition at line 1235 of file ExpressionParser.cc.
References build_expr().
Referenced by stx::parseExpressionList().