XSLPparseformula
XSLPparseformula |
Purpose
Parse a formula written as an unparsed array of tokens into internal parsed (reverse Polish) format
Synopsis
int XPRS_CC XSLPparseformula(XSLPprob Prob, int *inType, double *inValue, int *nToken, int *Type, double *Value);
Arguments
Prob
|
The current SLP problem.
|
inType
|
Array of token types providing the unparsed formula.
|
inValue
|
Array of values corresponding to the types in
inType.
|
nToken
|
Address of an integer to receive the number of tokens in the parsed formula (not counting the terminating
XSLP_EOF token). May be
NULL if not required.
|
Type
|
Array of token types providing the parsed formula.
|
Value
|
Array of values corresponding to the types in
Type.
|
Example
Assuming that
x and
y are already defined as columns with index
iX and
iY respectively, the following example converts the formula "sin(x+y)" into internal parsed format, and then writes it out as a sequence of tokens.
int n, iSin, iX, iY; int inType[7], Type[20]; double inValue[7], Value[20]; n = 0; XSLPgetindex(Prob, XSLP_INTERNALFUNCNAMESNOCASE, "SIN", &iSin); Type[n] = XSLP_IFUN; Value[n++] = iSin; Type[n++] = XSLP_LB; Type[n] = XSLP_COL; Value[n++] = iX; Type[n] = XSLP_OP; Value[n++] = XSLP_PLUS; Type[n] = XSLP_COL; Value[n++] = iY; Type[n++] = XSLP_RB; Type[n++] = XSLP_EOF; XSLPparseformula(Prob, inType, inValue, NULL, Type, Value); printf("\n"); for (n=0;Type[n] != XSLP_EOF;n++) { XSLPitemname(Prob, Type[n], Value[n], Buffer); printf(" %s", Buffer); }
Further information
For possible token types and values see the chapter on "Formula Parsing".
Related topics