Rosetta  2020.37
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Typedefs | Enumerations | Functions
numeric::expression_parser Namespace Reference

Classes

class  AbsoluteValueExpression
 
class  AddExpression
 
class  AndExpression
 
class  ArithmeticASTAndClause
 
class  ArithmeticASTExpression
 
class  ArithmeticASTFactor
 
class  ArithmeticASTFunction
 
class  ArithmeticASTNode
 Base class for Abstract Syntax Tree (AST) for the simple Arithmetic language defined here. More...
 
class  ArithmeticASTOrClause
 
class  ArithmeticASTRestAndClause
 
class  ArithmeticASTRestExpression
 
class  ArithmeticASTRestOrClause
 
class  ArithmeticASTRestTerm
 
class  ArithmeticASTTerm
 
class  ArithmeticASTValue
 either a variable or a literal. More...
 
class  ArithmeticScanner
 
class  ASTPrinter
 Traverse the AST and print it to standard out. More...
 
class  ASTVisitor
 Double-dispatch visitor pattern for abstract syntax tree. More...
 
class  BinaryExpression
 
class  BooleanExpressionCreator
 
class  BooleanExpressionScanner
 
class  DivideExpression
 
class  EqualsExpression
 
class  Expression
 Pure virtual base class to define arbitrary expressions for scripting arithmetic operations (e.g. addition and multipliction). More...
 
class  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  FunctionToken
 
class  GT_Expression
 Greater Than. More...
 
class  GTE_Expression
 Greater Than or Equal To. More...
 
class  ITEExpression
 
class  LiteralExpression
 
class  LiteralToken
 
class  LT_Expression
 Less Than. More...
 
class  LTE_Expression
 Less Than or Equal To. More...
 
class  MaxExpression
 
class  MetaMaxExpression
 Evaluates ee1 when e1 is larger than e2; evaluates ee2 otherwise. More...
 
class  MetaMinExpression
 Evaluates ee1 when e1 is less than e2; evaluates ee2 otherwise. More...
 
class  MinExpression
 
class  MultiplyExpression
 
class  NaryExpression
 
class  NotExpression
 
class  OrExpression
 
class  SimpleExpressionCreator
 
class  SimpleToken
 
class  SquarerootExpression
 
class  SubtractExpression
 
class  Token
 
class  TokenSet
 
class  UnaryExpression
 
class  VariableExpression
 
class  VariableToken
 

Typedefs

typedef
utility::pointer::shared_ptr
< Token
TokenOP
 
typedef
utility::pointer::shared_ptr
< Token const > 
TokenCOP
 
typedef
utility::pointer::shared_ptr
< LiteralToken
LiteralTokenOP
 
typedef
utility::pointer::shared_ptr
< LiteralToken const > 
LiteralTokenCOP
 
typedef
utility::pointer::shared_ptr
< VariableToken
VariableTokenOP
 
typedef
utility::pointer::shared_ptr
< VariableToken const > 
VariableTokenCOP
 
typedef
utility::pointer::shared_ptr
< FunctionToken
FunctionTokenOP
 
typedef
utility::pointer::shared_ptr
< FunctionToken const > 
FunctionTokenCOP
 
typedef
utility::pointer::shared_ptr
< SimpleToken
SimpleTokenOP
 
typedef
utility::pointer::shared_ptr
< SimpleToken const > 
SimpleTokenCOP
 
typedef
utility::pointer::shared_ptr
< TokenSet
TokenSetOP
 
typedef
utility::pointer::shared_ptr
< TokenSet const > 
TokenSetCOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticScanner
ArithmeticScannerOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticScanner const > 
ArithmeticScannerCOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTNode
ArithmeticASTNodeOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTNode const > 
ArithmeticASTNodeCOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTExpression
ArithmeticASTExpressionOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTExpression
const > 
ArithmeticASTExpressionCOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTFunction
ArithmeticASTFunctionOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTFunction const > 
ArithmeticASTFunctionCOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTTerm
ArithmeticASTTermOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTTerm const > 
ArithmeticASTTermCOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTFactor
ArithmeticASTFactorOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTFactor const > 
ArithmeticASTFactorCOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTOrClause
ArithmeticASTOrClauseOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTOrClause const > 
ArithmeticASTOrClauseCOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTAndClause
ArithmeticASTAndClauseOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTAndClause const > 
ArithmeticASTAndClauseCOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTValue
ArithmeticASTValueOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTValue const > 
ArithmeticASTValueCOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTRestTerm
ArithmeticASTRestTermOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTRestTerm const > 
ArithmeticASTRestTermCOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTRestAndClause
ArithmeticASTRestAndClauseOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTRestAndClause
const > 
ArithmeticASTRestAndClauseCOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTRestOrClause
ArithmeticASTRestOrClauseOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTRestOrClause
const > 
ArithmeticASTRestOrClauseCOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTRestExpression
ArithmeticASTRestExpressionOP
 
typedef
utility::pointer::shared_ptr
< ArithmeticASTRestExpression
const > 
ArithmeticASTRestExpressionCOP
 
typedef
utility::pointer::shared_ptr
< ASTVisitor
ASTVisitorOP
 
typedef
utility::pointer::shared_ptr
< ASTVisitor const > 
ASTVisitorCOP
 
typedef
utility::pointer::shared_ptr
< ASTPrinter
ASTPrinterOP
 
typedef
utility::pointer::shared_ptr
< ASTPrinter const > 
ASTPrinterCOP
 
typedef
utility::pointer::shared_ptr
< Expression
ExpressionOP
 
typedef
utility::pointer::shared_ptr
< Expression const > 
ExpressionCOP
 
typedef
utility::pointer::shared_ptr
< LiteralExpression
LiteralExpressionOP
 
typedef
utility::pointer::shared_ptr
< LiteralExpression const > 
LiteralExpressionCOP
 
typedef
utility::pointer::shared_ptr
< VariableExpression
VariableExpressionOP
 
typedef
utility::pointer::shared_ptr
< VariableExpression const > 
VariableExpressionCOP
 
typedef
utility::pointer::shared_ptr
< UnaryExpression
UnaryExpressionOP
 
typedef
utility::pointer::shared_ptr
< UnaryExpression const > 
UnaryExpressionCOP
 
typedef
utility::pointer::shared_ptr
< BinaryExpression
BinaryExpressionOP
 
typedef
utility::pointer::shared_ptr
< BinaryExpression const > 
BinaryExpressionCOP
 
typedef
utility::pointer::shared_ptr
< SquarerootExpression
SquarerootExpressionOP
 
typedef
utility::pointer::shared_ptr
< SquarerootExpression const > 
SquarerootExpressionCOP
 
typedef
utility::pointer::shared_ptr
< AddExpression
AddExpressionOP
 
typedef
utility::pointer::shared_ptr
< AddExpression const > 
AddExpressionCOP
 
typedef
utility::pointer::shared_ptr
< SubtractExpression
SubtractExpressionOP
 
typedef
utility::pointer::shared_ptr
< SubtractExpression const > 
SubtractExpressionCOP
 
typedef
utility::pointer::shared_ptr
< MultiplyExpression
MultiplyExpressionOP
 
typedef
utility::pointer::shared_ptr
< MultiplyExpression const > 
MultiplyExpressionCOP
 
typedef
utility::pointer::shared_ptr
< DivideExpression
DivideExpressionOP
 
typedef
utility::pointer::shared_ptr
< DivideExpression const > 
DivideExpressionCOP
 
typedef
utility::pointer::shared_ptr
< MaxExpression
MaxExpressionOP
 
typedef
utility::pointer::shared_ptr
< MaxExpression const > 
MaxExpressionCOP
 
typedef
utility::pointer::shared_ptr
< MinExpression
MinExpressionOP
 
typedef
utility::pointer::shared_ptr
< MinExpression const > 
MinExpressionCOP
 
typedef
utility::pointer::shared_ptr
< MetaMaxExpression
MetaMaxExpressionOP
 
typedef
utility::pointer::shared_ptr
< MetaMaxExpression const > 
MetaMaxExpressionCOP
 
typedef
utility::pointer::shared_ptr
< MetaMinExpression
MetaMinExpressionOP
 
typedef
utility::pointer::shared_ptr
< MetaMinExpression const > 
MetaMinExpressionCOP
 

Enumerations

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

Functions

std::string token_type_name (TokenType tt)
 
bool is_numeral (char c)
 
bool is_letter (char c)
 
std::string to_uppercase (std::string const &s)
 
ExpressionCOP parse_string_to_expression (std::string const &input_string)
 
ExpressionCOP parse_string_to_boolean_expression (std::string const &input_string)
 

Typedef Documentation

typedef utility::pointer::shared_ptr< ASTPrinter const > numeric::expression_parser::ASTPrinterCOP
typedef utility::pointer::shared_ptr< ASTVisitor const > numeric::expression_parser::ASTVisitorCOP
typedef utility::pointer::shared_ptr< Expression const > numeric::expression_parser::ExpressionCOP
typedef utility::pointer::shared_ptr< LiteralToken const > numeric::expression_parser::LiteralTokenCOP
typedef utility::pointer::shared_ptr< SimpleToken const > numeric::expression_parser::SimpleTokenCOP
typedef utility::pointer::shared_ptr< Token const > numeric::expression_parser::TokenCOP
typedef utility::pointer::shared_ptr< Token > numeric::expression_parser::TokenOP
typedef utility::pointer::shared_ptr< TokenSet const > numeric::expression_parser::TokenSetCOP
typedef utility::pointer::shared_ptr< TokenSet > numeric::expression_parser::TokenSetOP

Enumeration Type Documentation

Enumerator
INVALID_TOKEN_TYPE 
LITERAL 
VARIABLE 
FUNCTION 
COMMA 
LEFT_PAREN 
RIGHT_PAREN 
PLUS_SYMBOL 
SUBTRACT_SYMBOL 
MULTIPLY_SYMBOL 
DIVIDE_SYMBOL 
AND_SYMBOL 
OR_SYMBOL 
NOT_SYMBOL 

Function Documentation

bool numeric::expression_parser::is_letter ( char  c)
bool numeric::expression_parser::is_numeral ( char  c)
ExpressionCOP numeric::expression_parser::parse_string_to_boolean_expression ( std::string const &  input_string)
ExpressionCOP numeric::expression_parser::parse_string_to_expression ( std::string const &  input_string)
std::string numeric::expression_parser::to_uppercase ( std::string const &  s)
std::string numeric::expression_parser::token_type_name ( TokenType  tt)