Top Method Summary
Options Name Purpose
A ApplyResxValue (character, character, character) Applies a single .resx key/value pair to the subclass model
CollectResxProperties (character) Reads the sibling .resx file of the parsed source and dispatches each "controlName.Property" entry to the subclass via ApplyResxValue
CHARACTER DecodeAccessChain (INode) Decodes a Widget_ref / Field_ref node into a CHR(1) delimited access chain
CHARACTER DecodeValueExpression (INode) Decodes the right-hand side of an EQUAL expression to a character value
Consultingwerk.Studio.ProparseApi.INode FindFirstChildOfType (INode, NodeTypesEnum) Returns the first child node of the given node which is of the requested node type
Consultingwerk.Studio.ProparseApi.INode FindInitializeComponent (INode) Locates the InitializeComponent method block of the parsed file
Consultingwerk.Studio.ProparseApi.INode FindMethod (INode, character) Locates a METHOD node by name in the given AST root
CHARACTER GetNewExpressionFirstString (INode) Returns the first QSTRING constructor argument of a NEW expression
CHARACTER GetNewExpressionType (INode) Returns the type name from a NEW expression node
Consultingwerk.Studio.ProparseApi.IProparseApi GetProparseApi () Returns the IProparseApi service used to parse the source file
Consultingwerk.Studio.ProparseApi.INode GetVariableTypeName (INode) Returns the type name node for a DEFINE VARIABLE statement
LOGICAL IsBindingSourceType (character) Returns TRUE for binding source / non-visual types
LOGICAL IsButtonType (character) Returns TRUE for button types
LOGICAL IsCheckEditorType (character) Returns TRUE for check editor types (mapped to TOGGLE-BOX)
LOGICAL IsComboEditorType (character) Returns TRUE for combo editor types (mapped to COMBO-BOX)
LOGICAL IsGroupBoxType (character) Returns TRUE for group box types (mapped to ABL RECTANGLE)
LOGICAL IsImageType (character) Returns TRUE for image / picture box types
LOGICAL IsLabelType (character) Returns TRUE if the given type name represents a label control
LOGICAL IsOptionSetType (character) Returns TRUE for option set types (mapped to RADIO-SET)
CHARACTER NormalizeText (character) Normalizes Proparse text content to lower case form for THIS-OBJECT keyword matching. For control names, the original casing is preserved.
INTEGER NthInteger (character, integer) Returns the N-th signed integer token contained in a string
DECIMAL PixelsToColumns (integer) Converts pixel coordinates back into ABL column units
DECIMAL PixelsToRows (integer) Converts pixel coordinates back into ABL row units
CHARACTER ShortClassNameFromFile (character) Returns the short class name represented by the given source file
CHARACTER ShortTypeName (character) Returns the short (unqualified) type name of a possibly-qualified .NET type
LOGICAL TryParseTwoIntegers (character, integer, integer) Extracts the first two signed integers found in a string


Method Detail
Top

ApplyResxValue (character, character, character)

Purpose: Applies a single .resx key/value pair to the subclass model
Notes: Called by CollectResxProperties for each "controlName.Property"
entry. Implemented by the concrete parser.

Parameters:
pcControl CHARACTER
The control name (or $this for the form / user control itself)
pcProperty CHARACTER
The property name (e.g. "Location", "Size", "Header.Caption", "Width")
pcValue CHARACTER
The string representation of the value
Top

CollectResxProperties (character)

Purpose: Reads the sibling .resx file of the parsed source and dispatches
each "controlName.Property" entry to the subclass via ApplyResxValue
Notes: ObjectModelParser-free reading via the .NET ResXResourceReader.
The ">>name.Property" type / parent indicator entries are skipped.

Parameters:
pcFileName CHARACTER
The name of the .cls file
Top

CHARACTER DecodeAccessChain (INode)

Purpose: Decodes a Widget_ref / Field_ref node into a CHR(1) delimited
access chain
Notes: For the node representing "THIS-OBJECT:foo:bar" returns
"this-object<1>foo<1>bar" (where <1> is CHR(1)). Walks the
direct child tokens of the node, collecting the identifier
tokens (THIS-OBJECT, ID, keyword-as-member like ADD) and
skipping the OBJCOLON separators. Stops at the parameter list
of a method call. A delimited string is returned (rather than
an array) to avoid indeterminate extent issues on the empty case.

Parameters:
poNode Consultingwerk.Studio.ProparseApi.INode
The Widget_ref / Field_ref node
Returns CHARACTER
The CHR(1) delimited access chain, or the empty string
Top

CHARACTER DecodeValueExpression (INode)

Purpose: Decodes the right-hand side of an EQUAL expression to a character value
Notes: Handles QSTRING, NUMBER, TRUE/FALSE and access chains

Parameters:
poRight Consultingwerk.Studio.ProparseApi.INode
The right hand side INode
Returns CHARACTER
The decoded character representation
Top

Consultingwerk.Studio.ProparseApi.INode FindFirstChildOfType (INode, NodeTypesEnum)

Purpose: Returns the first child node of the given node which is of the
requested node type
Notes: Searches direct children only - does not descend

Parameters:
poParent Consultingwerk.Studio.ProparseApi.INode
The parent node
poType Consultingwerk.Studio.ProparseApi.NodeTypesEnum
The required node type
Returns Consultingwerk.Studio.ProparseApi.INode
The matching INode or the unknown reference
Top

Consultingwerk.Studio.ProparseApi.INode FindInitializeComponent (INode)

Purpose: Locates the InitializeComponent method block of the parsed file
Notes: Returns the METHOD node; the class members live inside the class
Code_block, not directly under the CLASS node.

Parameters:
poTopNode Consultingwerk.Studio.ProparseApi.INode
The Program_root node of the parsed file
Returns Consultingwerk.Studio.ProparseApi.INode
The InitializeComponent METHOD INode or the unknown reference
Top

Consultingwerk.Studio.ProparseApi.INode FindMethod (INode, character)

Purpose: Locates a METHOD node by name in the given AST root
Notes: Walks the AST tree looking for a METHOD node whose ID matches

Parameters:
poNode Consultingwerk.Studio.ProparseApi.INode
The current AST node
pcMethodName CHARACTER
The name of the method to find
Returns Consultingwerk.Studio.ProparseApi.INode
The matching METHOD INode or the unknown reference
Top

CHARACTER GetNewExpressionFirstString (INode)

Purpose: Returns the first QSTRING constructor argument of a NEW expression
Notes: For "new UltraGridColumn (~"CustNum~")" returns "CustNum". The
arguments are wrapped in N_INPUT nodes inside the Parameter_list.

Parameters:
poNewNode Consultingwerk.Studio.ProparseApi.INode
The N_NEW node
Returns CHARACTER
The unquoted first string argument, or the empty string
Top

CHARACTER GetNewExpressionType (INode)

Purpose: Returns the type name from a NEW expression node
Notes:

Parameters:
poNode Consultingwerk.Studio.ProparseApi.INode
The right hand side of the assignment
Returns CHARACTER
The full type name or empty string
Top

Consultingwerk.Studio.ProparseApi.IProparseApi GetProparseApi ()

Purpose: Returns the IProparseApi service used to parse the source file
Notes:

Returns Consultingwerk.Studio.ProparseApi.IProparseApi
The IProparseApi service reference
Top

Consultingwerk.Studio.ProparseApi.INode GetVariableTypeName (INode)

Purpose: Returns the type name node for a DEFINE VARIABLE statement
Notes: The AS clause is followed by a TYPE_NAME node holding the class name

Parameters:
poDefineNode Consultingwerk.Studio.ProparseApi.INode
The DEFINE node
Returns Consultingwerk.Studio.ProparseApi.INode
The TYPE_NAME INode or the unknown reference
Top

LOGICAL IsBindingSourceType (character)

Purpose: Returns TRUE for binding source / non-visual types
Notes:

Parameters:
pcTypeName CHARACTER
The .NET type name
Returns LOGICAL
Logical value
Top

LOGICAL IsButtonType (character)

Purpose: Returns TRUE for button types
Notes:

Parameters:
pcTypeName CHARACTER
The .NET type name
Returns LOGICAL
Logical value
Top

LOGICAL IsCheckEditorType (character)

Purpose: Returns TRUE for check editor types (mapped to TOGGLE-BOX)
Notes:

Parameters:
pcTypeName CHARACTER
The .NET type name
Returns LOGICAL
Logical value
Top

LOGICAL IsComboEditorType (character)

Purpose: Returns TRUE for combo editor types (mapped to COMBO-BOX)
Notes:

Parameters:
pcTypeName CHARACTER
The .NET type name
Returns LOGICAL
Logical value
Top

LOGICAL IsGroupBoxType (character)

Purpose: Returns TRUE for group box types (mapped to ABL RECTANGLE)
Notes:

Parameters:
pcTypeName CHARACTER
The .NET type name
Returns LOGICAL
Logical value
Top

LOGICAL IsImageType (character)

Purpose: Returns TRUE for image / picture box types
Notes:

Parameters:
pcTypeName CHARACTER
The .NET type name
Returns LOGICAL
Logical value
Top

LOGICAL IsLabelType (character)

Purpose: Returns TRUE if the given type name represents a label control
Notes:

Parameters:
pcTypeName CHARACTER
The .NET type name
Returns LOGICAL
Logical value
Top

LOGICAL IsOptionSetType (character)

Purpose: Returns TRUE for option set types (mapped to RADIO-SET)
Notes:

Parameters:
pcTypeName CHARACTER
The .NET type name
Returns LOGICAL
Logical value
Top

CHARACTER NormalizeText (character)

Purpose: Normalizes Proparse text content to lower case form for THIS-OBJECT
keyword matching. For control names, the original casing is
preserved.
Notes:

Parameters:
pcText CHARACTER
The original text
Returns CHARACTER
The normalized text
Top

INTEGER NthInteger (character, integer)

Purpose: Returns the N-th signed integer token contained in a string
Notes: Non-digit characters separate the tokens; a leading minus sign
is treated as part of the following number.

Parameters:
pcText CHARACTER
The text to scan
piWhich INTEGER
The 1-based index of the integer token to return
Returns INTEGER
The integer value, or the unknown value when not present
Top

DECIMAL PixelsToColumns (integer)

Purpose: Converts pixel coordinates back into ABL column units
Notes: Opposite of the MetaFrame generators which calculate
ABLColumns * ScalingFactors:PIXELS-PER-COLUMN

Parameters:
piPixels INTEGER
The number of pixels
Returns DECIMAL
The decimal number of ABL columns
Top

DECIMAL PixelsToRows (integer)

Purpose: Converts pixel coordinates back into ABL row units
Notes: Opposite of the MetaFrame generators which calculate
ABLRows * ScalingFactors:PIXELS-PER-ROW

Parameters:
piPixels INTEGER
The number of pixels
Returns DECIMAL
The decimal number of ABL rows
Top

CHARACTER ShortClassNameFromFile (character)

Purpose: Returns the short class name represented by the given source file
Notes: For a GUI for .NET Form / UserControl the migration name returned
is always the short class name.

Parameters:
pcFileName CHARACTER
The name of the .cls file
Returns CHARACTER
The short (unqualified) class name, or the empty string
Top

CHARACTER ShortTypeName (character)

Purpose: Returns the short (unqualified) type name of a possibly-qualified
.NET type
Notes:

Parameters:
pcTypeName CHARACTER
The qualified type name
Returns CHARACTER
The short type name
Top

LOGICAL TryParseTwoIntegers (character, integer, integer)

Purpose: Extracts the first two signed integers found in a string
Notes: ResXResourceReader deserializes layout values into .NET structs,
so the string representation is the struct's ToString() output -
e.g. "{X=130,Y=3}" for a System.Drawing.Point and
"{Width=132, Height=21}" for a System.Drawing.Size - not a plain
"130, 3". Extracting the integer tokens handles both the struct
formats and a plain comma separated pair.

Parameters:
pcValue CHARACTER
The value string
piFirst INTEGER
OUTPUT The first integer
piSecond INTEGER
OUTPUT The second integer
Returns LOGICAL
Logical value indicating whether two integers were found


©2006-2026 Consultingwerk Ltd.         info@consultingwerk.de         http://www.consultingwerk.de       01.06.2026 09:18:22