Rosetta
Classes | Namespaces | Enumerations | Functions
Arithmetic.hh File Reference

Parse tree for arithmetic operations. More...

#include <numeric/expression_parser/Arithmetic.fwd.hh>
#include <numeric/types.hh>
#include <utility/VirtualBase.hh>
#include <sstream>
#include <list>
#include <map>
#include <utility/vector1.hh>

Classes

class  numeric::expression_parser::Token
 
class  numeric::expression_parser::LiteralToken
 
class  numeric::expression_parser::VariableToken
 
class  numeric::expression_parser::FunctionToken
 
class  numeric::expression_parser::SimpleToken
 
class  numeric::expression_parser::TokenSet
 
class  numeric::expression_parser::ArithmeticScanner
 
class  numeric::expression_parser::BooleanExpressionScanner
 
class  numeric::expression_parser::ArithmeticASTNode
 Base class for Abstract Syntax Tree (AST) for the simple Arithmetic language defined here. More...
 
class  numeric::expression_parser::ArithmeticASTExpression
 
class  numeric::expression_parser::ArithmeticASTFunction
 
class  numeric::expression_parser::ArithmeticASTTerm
 
class  numeric::expression_parser::ArithmeticASTFactor
 
class  numeric::expression_parser::ArithmeticASTOrClause
 
class  numeric::expression_parser::ArithmeticASTAndClause
 
class  numeric::expression_parser::ArithmeticASTValue
 either a variable or a literal. More...
 
class  numeric::expression_parser::ArithmeticASTRestTerm
 
class  numeric::expression_parser::ArithmeticASTRestOrClause
 
class  numeric::expression_parser::ArithmeticASTRestAndClause
 
class  numeric::expression_parser::ArithmeticASTRestExpression
 
class  numeric::expression_parser::ASTVisitor
 Double-dispatch visitor pattern for abstract syntax tree. More...
 
class  numeric::expression_parser::ASTPrinter
 Traverse the AST and print it to standard out. More...
 
class  numeric::expression_parser::ExpressionCreator
 Class to traverse the abstract syntax tree produced by the parsing of a properly-formed string in the Arithmetic expression language. Produces an Expression tree capable of performing arithmetic. Connects the "variable" nodes in this tree to the owning WrapperOptEMultifunc so that their values can be retrieved during expression evaluation inside the WrapperOptEMultifunc functor. More...
 
class  numeric::expression_parser::SimpleExpressionCreator
 
class  numeric::expression_parser::BooleanExpressionCreator
 
class  numeric::expression_parser::Expression
 Pure virtual base class to define arbitrary expressions for scripting arithmetic operations (e.g. addition and multipliction). More...
 
class  numeric::expression_parser::LiteralExpression
 
class  numeric::expression_parser::VariableExpression
 
class  numeric::expression_parser::UnaryExpression
 
class  numeric::expression_parser::BinaryExpression
 
class  numeric::expression_parser::NaryExpression
 
class  numeric::expression_parser::SquarerootExpression
 
class  numeric::expression_parser::AbsoluteValueExpression
 
class  numeric::expression_parser::AddExpression
 
class  numeric::expression_parser::SubtractExpression
 
class  numeric::expression_parser::MultiplyExpression
 
class  numeric::expression_parser::DivideExpression
 
class  numeric::expression_parser::MaxExpression
 
class  numeric::expression_parser::MinExpression
 
class  numeric::expression_parser::MetaMaxExpression
 Evaluates ee1 when e1 is larger than e2; evaluates ee2 otherwise. More...
 
class  numeric::expression_parser::MetaMinExpression
 Evaluates ee1 when e1 is less than e2; evaluates ee2 otherwise. More...
 
class  numeric::expression_parser::EqualsExpression
 
class  numeric::expression_parser::GT_Expression
 Greater Than. More...
 
class  numeric::expression_parser::GTE_Expression
 Greater Than or Equal To. More...
 
class  numeric::expression_parser::LT_Expression
 Less Than. More...
 
class  numeric::expression_parser::LTE_Expression
 Less Than or Equal To. More...
 
class  numeric::expression_parser::AndExpression
 
class  numeric::expression_parser::OrExpression
 
class  numeric::expression_parser::NotExpression
 
class  numeric::expression_parser::ITEExpression
 

Namespaces

 numeric
 Unit headers.
 
 numeric::expression_parser
 

Enumerations

enum  numeric::expression_parser::TokenType {
  numeric::expression_parser::INVALID_TOKEN_TYPE , numeric::expression_parser::LITERAL , numeric::expression_parser::VARIABLE , numeric::expression_parser::FUNCTION ,
  numeric::expression_parser::COMMA , numeric::expression_parser::LEFT_PAREN , numeric::expression_parser::RIGHT_PAREN , numeric::expression_parser::PLUS_SYMBOL ,
  numeric::expression_parser::SUBTRACT_SYMBOL , numeric::expression_parser::MULTIPLY_SYMBOL , numeric::expression_parser::DIVIDE_SYMBOL , numeric::expression_parser::AND_SYMBOL ,
  numeric::expression_parser::OR_SYMBOL , numeric::expression_parser::NOT_SYMBOL
}
 

Functions

std::string numeric::expression_parser::token_type_name (TokenType tt)
 
ExpressionCOP numeric::expression_parser::parse_string_to_expression (std::string const &input_string)
 
ExpressionCOP numeric::expression_parser::parse_string_to_boolean_expression (std::string const &input_string)
 

Detailed Description

Parse tree for arithmetic operations.

Author
Andrew Leaver-Fay (aleav.nosp@m.erfa.nosp@m.y@gma.nosp@m.il.c.nosp@m.om)