stx::Grammar Namespace Reference

Enclosure for the spirit parser grammar and hidden parse node implementation classes. More...


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< InputIterTParseTreeMatchT
 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 ParseNodebuild_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.


Detailed Description

Enclosure for the spirit parser grammar and hidden parse node implementation classes.


Enumeration Type Documentation

enum stx::Grammar::parser_ids

This enum specifies ids for the parse tree nodes created for each rule.

Enumerator:
boolean_const_id 
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 

Definition at line 54 of file ExpressionParser.cc.


Function Documentation

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


Generated on Tue Jul 17 16:51:58 2007 for STX Expression Parser by  doxygen 1.5.2