Initializing help system before first use

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