#include <Function.h>
Public Member Functions | |
Argument (string name_="", bool does_test=true, bool does_error=true) | |
Argument (const Argument *arg) | |
virtual | ~Argument () |
virtual void | set (const Argument *arg) |
virtual Argument * | copy () const |
virtual string | print () const |
string | printlong () const |
bool | test (MathStructure &value, int index, MathFunction *f, const EvaluationOptions &eo=default_evaluation_options) const |
virtual MathStructure | parse (const string &str, const ParseOptions &po=default_parse_options) const |
virtual void | parse (MathStructure *mstruct, const string &str, const ParseOptions &po=default_parse_options) const |
string | name () const |
void | setName (string name_) |
void | setCustomCondition (string condition) |
string | getCustomCondition () const |
bool | tests () const |
void | setTests (bool does_error) |
bool | alerts () const |
void | setAlerts (bool does_error) |
bool | zeroForbidden () const |
void | setZeroForbidden (bool forbid_zero) |
bool | matrixAllowed () const |
void | setMatrixAllowed (bool allow_matrix) |
bool | rationalPolynomial () const |
void | setRationalPolynomial (bool rational_polynomial) |
virtual bool | suggestsQuotes () const |
virtual int | type () const |
Protected Member Functions | |
virtual bool | subtest (MathStructure &value, const EvaluationOptions &eo) const |
virtual string | subprintlong () const |
Protected Attributes | |
string | sname |
string | scondition |
bool | b_zero |
bool | b_test |
bool | b_matrix |
bool | b_text |
bool | b_error |
bool | b_rational |
Free arguments accepts any value.
Argument::Argument | ( | string | name_ = "" , |
|
bool | does_test = true , |
|||
bool | does_error = true | |||
) |
Creates a new argument definition.
name | Name/title of the argument definition. | |
does_test | If argument values will be tested. | |
does_error | If an error will issued if the value tests false. |
Argument::Argument | ( | const Argument * | arg | ) |
virtual Argument::~Argument | ( | ) | [virtual] |
Destructor
virtual bool Argument::subtest | ( | MathStructure & | value, | |
const EvaluationOptions & | eo | |||
) | const [protected, virtual] |
This function is called from Argument::test() and performs validation specific to the argument definition type. Should be reimplemented by all subclasses.
value | Value to test. | |
eo | Evaluation options to use if the value needs to be evaluated. |
Reimplemented in DataPropertyArgument, DataObjectArgument, NumberArgument, IntegerArgument, SymbolicArgument, TextArgument, DateArgument, VectorArgument, MatrixArgument, ExpressionItemArgument, FunctionArgument, BooleanArgument, and ArgumentSet.
virtual string Argument::subprintlong | ( | ) | const [protected, virtual] |
This function is called from Argument::printlong() and returns description specific the argument definition type. Should be reimplemented by all subclasses. For example IntegerArgument::subprintlong() might return "an integer" and Argument::printlong() might append " that fulfills the condition: even(\x)".
Reimplemented in DataPropertyArgument, DataObjectArgument, NumberArgument, IntegerArgument, SymbolicArgument, TextArgument, DateArgument, VectorArgument, MatrixArgument, ExpressionItemArgument, FunctionArgument, BooleanArgument, and ArgumentSet.
virtual void Argument::set | ( | const Argument * | arg | ) | [virtual] |
Sets the argument to a copy of an argument definition.
arg | Argument to copy. |
Reimplemented in NumberArgument, and IntegerArgument.
virtual Argument* Argument::copy | ( | ) | const [virtual] |
Returns a copy of the argument definition.
Reimplemented in DataPropertyArgument, DataObjectArgument, NumberArgument, IntegerArgument, SymbolicArgument, TextArgument, DateArgument, VectorArgument, MatrixArgument, ExpressionItemArgument, FunctionArgument, BooleanArgument, and ArgumentSet.
virtual string Argument::print | ( | ) | const [virtual] |
Resturns a short description of the argument definition. Ex. "number" for NumberArgument.
Reimplemented in DataPropertyArgument, DataObjectArgument, NumberArgument, IntegerArgument, SymbolicArgument, TextArgument, DateArgument, VectorArgument, MatrixArgument, ExpressionItemArgument, FunctionArgument, BooleanArgument, and ArgumentSet.
string Argument::printlong | ( | ) | const |
Resturns a long description of the argument definition. Ex. "A real number > 2".
bool Argument::test | ( | MathStructure & | value, | |
int | index, | |||
MathFunction * | f, | |||
const EvaluationOptions & | eo = default_evaluation_options | |||
) | const |
Tests if a value fulfils the requirements of the argument definition. The value might change if it has not been fully evaluated.
value | Value to test. | |
f | Mathematical function that the value is an argument for. | |
eo | Evaluation options to use if the value needs to be evaluated. |
virtual MathStructure Argument::parse | ( | const string & | str, | |
const ParseOptions & | po = default_parse_options | |||
) | const [virtual] |
Parses an expression for an argument value. The default behavior is to use Calculator::parse() directly.
str | Expression. | |
po | Parse options. |
virtual void Argument::parse | ( | MathStructure * | mstruct, | |
const string & | str, | |||
const ParseOptions & | po = default_parse_options | |||
) | const [virtual] |
Parses an expression for an argument value. The default behavior is to use Calculator::parse() directly.
mstruct | Mathematical structure to set with the parsed expression. | |
str | Expression. | |
po | Parse options. |
string Argument::name | ( | ) | const |
Returns the name/title of the argument definition.
void Argument::setName | ( | string | name_ | ) |
Sets the name/title of the argument definition.
name_ | New name/title. |
void Argument::setCustomCondition | ( | string | condition | ) |
Sets a custom condition for argument values. '' is replaced by the argument value in the expression.
condition | Condition expression. |
string Argument::getCustomCondition | ( | ) | const |
Returns the custom condition expression set for argument values.
bool Argument::tests | ( | ) | const |
If the value for the argument will be tested. If not, the argument only works as an suggestion and any value is allowed.
bool Argument::alerts | ( | ) | const |
If an error message will be presented to the user if the value for the argument is not allowed.
bool Argument::zeroForbidden | ( | ) | const |
If an argument value of zero is forbidden.
void Argument::setZeroForbidden | ( | bool | forbid_zero | ) |
Sets if a value of zero is forbidden for the argument value.
forbid_zero | If zero shall be forbidden. |
bool Argument::rationalPolynomial | ( | ) | const |
If only rational polynomials are allowed as argument value.
virtual int Argument::type | ( | ) | const [virtual] |
Returns the type of the argument, corresponding to which subclass the object belongs to.
Reimplemented in DataPropertyArgument, DataObjectArgument, NumberArgument, IntegerArgument, SymbolicArgument, TextArgument, DateArgument, VectorArgument, MatrixArgument, ExpressionItemArgument, FunctionArgument, BooleanArgument, and ArgumentSet.