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().
1.5.2