Parameter Values References

Node Attributes Reference

String Integer Attribute Key or Value, Description
Empty string "" 0 Value, the attribute value is false - the node does not have the attribute.
t 1 Value, the attribute value is true - the node has the attribute.
storetype 1100 Key, for table or record references. Use this key to find out if a given reference is to a database table, a temp-table, or to a work-table.
st-dbtable 1102 Value, storage type is database table
st-ttable 1103 Value, storage type is temp-table
st-wtable 1104 Value, storage type is work-table
operator 1200 Key. Indicates that the node is an operator. For example, in the expression "1 + 2", the "+" is stored in the syntax tree as a PLUS node, and it is an operator. Operator nodes always have exactly two children (but either of those children may have any number of other children). In the case of "1 + 2", the NUMBER nodes "1" and "2" are the two children (operands) of the operator (PLUS) node.
state2 1300 Key. Secondary statement keyword, found only on statement head nodes. Used for statements where the first keyword in the statement is not enough to determine the exact statement type. For example, a DEFINE node may have a state2 attribute of BUFFER, PARAMETER, VARIABLE, etc. A DELETE node may have a state2 value of ALIAS, OBJECT, PROCEDURE, etc. For a DELETE record statement however, the state2 attribute is not used (empty). There is no secondary keyword for qualifying what kind of a DELETE statement it is - it's simply a delete statement.
The Syntax Tree Specification details exactly what the state2 value is for each statement head node.
statehead 1400 Key. True if the node is the head node of a statement (ex: DEFINE, DISPLAY, DO, etc.).
The Syntax Tree Specification details which nodes are statement heads. Also see the function parserNodeStateHead.
proparsedirective 1500 Key. Returns the text value of a PROPARSEDIRECTIVE node. See Source Code Marking.
node-type-keyword 1600 Key. Is the node type a keyword node type? (ex: DISPLAY is, ID is not) Note: Proparse does not resolve attribute and method names.
abbreviated 1700 Key. For "node-type-keyword" nodes only: Is the node's text abbreviated? Note: Proparse does not resolve attribute and method names.
fulltext 1800 Key. For "node-type-keyword" nodes only: Returns the capitalized, unabbreviated keyword text. (ex: for node type CASESENSITIVE, node text might be "case-sens", "fulltext" attribute would return "CASE-SENSITIVE") Note: Proparse does not resolve attribute and method names.
from-user-dict 1900 Key. Returns a boolean value - does the node type and node text match an entry in the user defined node types dictionary?
inline-var-def 2000 Key. Returns a boolean value. Is only available on "Field_ref" nodes. If the reference is to a variable being defined inline, then this attribute is set to true. For example, in the following: message ... update myNewVar as logical ... the variable myNewVar is being referenced (updated) and defined all at the same time. This attribute is important to tree parsers which are dealing with name binding.
  2100 Key. Integer only. Valid from the CLASS node only. See Super Class Syntax Tree.
filename-list 2200

Key. Returns a newline (i.e. '\n' or chr(10)) separated list of filenames, in order corresponding to the integer file indexes for the nodes. The count is from zero: the first file in the list at index zero is always the compile unit. The rest are include files.

This list is fetched via node attributes, rather than via any direct Proparse API function, because there may be more than one syntax tree (and more than one filename list) active at any one time.

  2300

Key. Integer only. Every natural node in the tree has a source number, which is simply the integer line number from Proparse's preprocessor listing file. This allows nodes in the the syntax tree to be mapped to a specific macro reference in the macro expansion tree. Although the listing file doesn't explicitly list it as a macroref, the compile unit source file (.p,.w,.cls) is counted as SOURCENUM zero.

qualified-class 2400

Key. On TYPE_NAME nodes, returns the qualified class name ("package.ClassName"). Proparse evaluates USING statements and the currently configured propath to derive the qualified class name for TYPE_NAME nodes. (If the class name was qualified in the source code, then this attribute and getText() will be the same.)

Configuration Settings Reference

Flag Name Values and Description
batch-mode "true" or "false". Is set by proparse.p. The value of this flag is used if any of your source code uses the BATCH-MODE preprocessor name.
init "true" or "false". This configuration setting is never used within the Proparse link library (DLL). It is intended for use by the 4GL part of the API, and for use by your programs, for determining whether or not initialization has been done yet for all of the DLL settings. For example, through your Progress session, you might run proparse.p multiple times, but the DLL is only loaded once, and it is only necessary to load the configuration settings and all of the schema once. You can set and evaluate this flag in your programs to determine whether configuration has been done yet or not. For an example, see proparse/api/proparse.p.
listing-file If the value is non-blank, then a preprocessor listing file is written out to this file name. See Preprocessor Listing File.
multi-parse "true" or "false". Default is "false". Similar to the MULTI-COMPILE setting on the compiler, if the value for this is true, then the inheritance tables for classes are cached. If this value is false, then the inheritance tables are cleared each time parse() is called.
opsys Same value as the 4GL function OPSYS. Is set by proparse.p. The value of this flag is used if any of your source code uses the OPSYS preprocessor name.
propath Same value as the 4GL function PROPATH (comma separated). Is set by proparse.p. The value of this flag is used for finding your include files.
proversion

Same value as the 4GL function PROVERSION. Is set by proparse.p. The value of this flag is used if any of your source code uses the PROVERSION function within an &IF preprocessor condition.

Note that this does not affect which versions of syntax are recognized, which keywords are recognized, etc.

show-proparse-directives "true" or "false". Default is "false". Tells Proparse to put {&_PROPARSE_} directives into the syntax tree. See Source Code Marking.
window-system Same value as SESSION:WINDOW-SYSTEM. Is set by proparse.p. The value of this flag is used if any of your source code uses the WINDOW-SYSTEM preprocessor name.