29 #ifndef SCIMATH_FUNCEXPRESSION_H
30 #define SCIMATH_FUNCEXPRESSION_H
43 template <
class T>
class Vector;
107 const vector<FuncExprData::ExprOperator> &
getCode()
const;
119 void print(ostream &os)
const;
128 vector<FuncExprData::ExprOperator>
code_p;
130 vector<FuncExprData::ExprOperator>
rps_p;
FuncExpression & operator=(const FuncExpression &other)
Make this object a (deep) copy of other.
A 1-D Specialization of the Array class.
std::vector< double > Vector
uInt getNdim() const
Get the number of dimensions of executable program.
Bool compTerm(MUString &prg)
Compile a term (in prg, which will be adjusted)
const vector< FuncExprData::ExprOperator > & getCode() const
Get the executable program.
vector< Double > exec_p
Executing stack.
void initState()
Initialise the state.
Pointed String class to aid analysis of quantity strings.
const vector< FuncExprData::ExprOperator > & getCode()
Get reference to the compiled program.
String error_p
The latest error message.
ostream & operator<<(ostream &os, const std::pair< T, U > &p)
Bool exec(Double &res) const
Execute the program.
void print(ostream &os) const
Print the stack information (mainly for debugging)
FuncExprData::ExprCompState state_p
The current state of the compilation.
The operator description: code; priority; # of arguments; # of arguments used up (or produced for fun...
vector< Double > const_p
The current constant stack.
Bool compStmt(MUString &prg)
Compile a statement (in prg, which will be adjusted)
bool Bool
Define the standard types used by Casacore.
Bool setCode(const FuncExprData::ExprOperator &oper)
Save an executable code.
Bool create(const String &prog)
Create an executable program.
const vector< Double > & getConst()
Get reference to compiled constants.
FuncExprData exd
The expression data /// later into a singleton.
An expression executable as function.
vector< FuncExprData::ExprOperator > rps_p
The reverse Polish work stack (a vector, since deque did not work on gcc)
uInt npar_p
The number of parameters in code.
uInt getNpar() const
Get the number of parameters in executable program.
Bool compExpr(MUString &prg)
Compile an expression (in prg, which will be adjusted)
String: the storage and methods of handling collections of characters.
const String & errorMessage()
Get the current error message.
FuncExpression()
Construct an empty executable expression.
vector< FuncExprData::ExprOperator > code_p
The executable code stack (a vector, since it is a re-usable stack)
Bool setOp(FuncExprData::ExprOperator &oper)
Save an operation on compilation RP stack.
~FuncExpression()
Destructor.
uInt ndim_p
The number of dimensions of expression.
The compilation state descriptor.
Bool setVal(const Double &val)
Save a value on constant stack.
Data and enumerations for functional expressions.
#define casacore
<X11/Intrinsic.h> #defines true, false, casacore::Bool, and String.