|
Options |
Name |
Purpose |
|
|
|
AddToken (integer, character)
|
Appends a condition token
Notes :
@param piType The token type
@param pcText The token text
*/
|
|
|
|
Advance ()
|
Advances the token cursor to the next token
Notes :
*/
|
|
|
|
LOGICAL AtEnd ()
|
Returns whether the token cursor is at the end of the condition
Notes :
@return Logical value indicating the end of the condition
*/
|
|
|
|
Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue Compare (character, PreproValue, PreproValue)
|
Compares two values with the given comparison operator
Notes :
@param pcOp The comparison operator
@param poLeft The left operand value
@param poRight The right operand value
@return The logical result of the comparison
*/
|
|
|
|
CHARACTER CurrentText ()
|
Returns the text of the current token
Notes :
@return The token text
*/
|
|
|
|
CHARACTER CurrentTextLower ()
|
Returns the lowercased text of the current token
Notes :
@return The lowercased token text
*/
|
|
|
|
INTEGER CurrentType ()
|
Returns the type of the current token
Notes :
@return The token type
*/
|
|
|
|
LOGICAL Evaluate ()
|
Evaluates the condition to a logical result
Notes :
@return The logical result of the &IF condition
*/
|
|
|
|
Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue EvaluateFunction (character)
|
Evaluates the preprocessor functions allowed in &IF expressions
Notes : Covers the full "Functions allowed in preprocessor
expressions" table of the &IF reference documentation
(SCL-5647), including the keyword abbreviations ABS, DEC,
INT, MAX, MIN, SUBSTR and TRUNC. Unsupported functions raise
an error so gaps are visible.
@param pcName The (lowercased) function name
@return The function result value
*/
|
|
|
|
Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue EvaluateMaxMin (logical, PreproValue[], integer)
|
Evaluates the MAXIMUM / MINIMUM preprocessor functions
Notes : Compares numerically when every argument is numeric, as
strings otherwise (SCL-5647)
@param plMaximum True for MAXIMUM, false for MINIMUM
@param poArgs The argument values
@param piArgs The number of arguments
@return The largest / smallest argument value
*/
|
|
|
|
CHARACTER EvaluateString (PreproValue[], integer)
|
Evaluates the STRING preprocessor function
Notes : Converts based on the value kind, so STRING (TRUE) yields
"yes" and STRING of a number / date uses the ABL conversion
(SCL-5647)
@param poArgs The argument values (the value, optionally a format)
@param piArgs The number of arguments
@return The string representation
*/
|
|
|
|
CHARACTER EvaluateSubstitute (PreproValue[], integer)
|
Evaluates the SUBSTITUTE preprocessor function
Notes : Dispatches on the argument count, since SUBSTITUTE takes a
variable number of substitution arguments (&1 .. &9)
@param poArgs The argument values (the pattern first)
@param piArgs The number of arguments
@return The substituted string
*/
|
|
|
|
INTEGER GetInt (PreproValue)
|
Converts a value to an INTEGER, range-checking it first
Notes : An out-of-range value raises a clear evaluator error instead
of a narrowing overflow; the reference evaluator
(ProEvalSupport.getInt) throws for such a value as well
(SCL-5481, SCL-5647)
@param poValue The value to convert
@return The INTEGER value
*/
|
|
|
|
LOGICAL IsEmpty ()
|
Returns whether any condition tokens have been added
Notes :
@return Logical value indicating an empty condition
*/
|
|
|
|
Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue ParseAdditive ()
|
Parses an additive (+ / -) expression
Notes :
@return The evaluated value
*/
|
|
|
|
Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue ParseAnd ()
|
Parses a logical AND expression
Notes :
@return The evaluated value
*/
|
|
|
|
Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue ParseComparison ()
|
Parses a comparison expression
Notes :
@return The evaluated value
*/
|
|
|
|
Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue ParseMultiplicative ()
|
Parses a multiplicative (* / / MODULO) expression
Notes :
@return The evaluated value
*/
|
|
|
|
Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue ParseNot ()
|
Parses a logical NOT expression
Notes :
@return The evaluated value
*/
|
|
|
|
Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue ParseOr ()
|
Parses a logical OR expression
Notes :
@return The evaluated value
*/
|
|
|
|
Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue ParsePrimary ()
|
Parses a primary expression (literal, parenthesis or function call)
Notes :
@return The evaluated value
*/
|
|
|
|
Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue ParseUnary ()
|
Parses a unary (+ / -) expression
Notes :
@return The evaluated value
*/
|
|
|
|
INTEGER PeekNextType ()
|
Returns the type of the token following the current one
Notes :
@return The token type
*/
|
|
|
|
CHARACTER QStringStrip (character)
|
Strips the surrounding quotes (and attributes) from a QSTRING
Notes : Port of StringFuncs.qstringStrip.
@param pcText The QSTRING token text
@return The unquoted string
*/
|
|
|
|
SetPosition (character, integer, integer)
|
Sets the source position of the &IF / &ELSEIF directive the
condition belongs to
Notes : The position is included in the message and the properties of
the ParsingException raised for evaluator errors (SCL-5648)
@param pcFileName The name of the source or include file containing the directive
@param piLine The line of the directive
@param piColumn The column of the directive
*/
|