Top Method Summary
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 */


Method Detail
Top

AddToken (integer, character)

Purpose: Appends a condition token
Notes :

Parameters:
piType INTEGER
The token type
pcText CHARACTER
The token text
Top

Advance ()

Purpose: Advances the token cursor to the next token
Notes :

Top

LOGICAL AtEnd ()

Purpose: Returns whether the token cursor is at the end of the condition
Notes :

Returns LOGICAL
Logical value indicating the end of the condition
Top

Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue Compare (character, PreproValue, PreproValue)

Purpose: Compares two values with the given comparison operator
Notes :

Parameters:
pcOp CHARACTER
The comparison operator
poLeft Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue
The left operand value
poRight Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue
The right operand value
Returns Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue
The logical result of the comparison
Top

CHARACTER CurrentText ()

Purpose: Returns the text of the current token
Notes :

Returns CHARACTER
The token text
Top

CHARACTER CurrentTextLower ()

Purpose: Returns the lowercased text of the current token
Notes :

Returns CHARACTER
The lowercased token text
Top

INTEGER CurrentType ()

Purpose: Returns the type of the current token
Notes :

Returns INTEGER
The token type
Top

LOGICAL Evaluate ()

Purpose: Evaluates the condition to a logical result
Notes :

Returns LOGICAL
The logical result of the &IF condition
Top

Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue EvaluateFunction (character)

Purpose: 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.

Parameters:
pcName CHARACTER
The (lowercased) function name
Returns Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue
The function result value
Top

Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue EvaluateMaxMin (logical, PreproValue[], integer)

Purpose: Evaluates the MAXIMUM / MINIMUM preprocessor functions
Notes : Compares numerically when every argument is numeric, as
strings otherwise (SCL-5647)

Parameters:
plMaximum LOGICAL
True for MAXIMUM, false for MINIMUM
poArgs Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue
The argument values
piArgs INTEGER
The number of arguments
Returns Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue
The largest / smallest argument value
Top

CHARACTER EvaluateString (PreproValue[], integer)

Purpose: 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)

Parameters:
poArgs Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue
The argument values (the value, optionally a format)
piArgs INTEGER
The number of arguments
Returns CHARACTER
The string representation
Top

CHARACTER EvaluateSubstitute (PreproValue[], integer)

Purpose: Evaluates the SUBSTITUTE preprocessor function
Notes : Dispatches on the argument count, since SUBSTITUTE takes a
variable number of substitution arguments (&1 .. &9)

Parameters:
poArgs Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue
The argument values (the pattern first)
piArgs INTEGER
The number of arguments
Returns CHARACTER
The substituted string
Top

INTEGER GetInt (PreproValue)

Purpose: 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)

Parameters:
poValue Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue
The value to convert
Returns INTEGER
The INTEGER value
Top

LOGICAL IsEmpty ()

Purpose: Returns whether any condition tokens have been added
Notes :

Returns LOGICAL
Logical value indicating an empty condition
Top

Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue ParseAdditive ()

Purpose: Parses an additive (+ / -) expression
Notes :

Returns Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue
The evaluated value
Top

Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue ParseAnd ()

Purpose: Parses a logical AND expression
Notes :

Returns Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue
The evaluated value
Top

Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue ParseComparison ()

Purpose: Parses a comparison expression
Notes :

Returns Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue
The evaluated value
Top

Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue ParseMultiplicative ()

Purpose: Parses a multiplicative (* / / MODULO) expression
Notes :

Returns Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue
The evaluated value
Top

Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue ParseNot ()

Purpose: Parses a logical NOT expression
Notes :

Returns Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue
The evaluated value
Top

Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue ParseOr ()

Purpose: Parses a logical OR expression
Notes :

Returns Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue
The evaluated value
Top

Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue ParsePrimary ()

Purpose: Parses a primary expression (literal, parenthesis or function call)
Notes :

Returns Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue
The evaluated value
Top

Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue ParseUnary ()

Purpose: Parses a unary (+ / -) expression
Notes :

Returns Consultingwerk.Studio.ProparseApi.Implementation.ProparseAbl.Lexer.PreproValue
The evaluated value
Top

INTEGER PeekNextType ()

Purpose: Returns the type of the token following the current one
Notes :

Returns INTEGER
The token type
Top

CHARACTER QStringStrip (character)

Purpose: Strips the surrounding quotes (and attributes) from a QSTRING
Notes : Port of StringFuncs.qstringStrip.

Parameters:
pcText CHARACTER
The QSTRING token text
Returns CHARACTER
The unquoted string
Top

SetPosition (character, integer, integer)

Purpose: 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)

Parameters:
pcFileName CHARACTER
The name of the source or include file containing the directive
piLine INTEGER
The line of the directive
piColumn INTEGER
The column of the directive


©2006-2026 Consultingwerk Ltd.         info@consultingwerk.de         http://www.consultingwerk.de       19.09.2026 10:18:17