Showing changes from revision #2 to #3:
Added | Removed | Changed
For The identifier x (named or not), word x in output buffer contains : the results of parsing the input string. The first n words of the output buffer correspond to the number of keywords in the syntax string.
Switch (/S) | Non zero value if switch used |
GSTransed (/G) | Pointer to block (0 if unused) with two-byte length and then string itself (not terminated) |
Evaluated (/E) | Pointer to block (0 if unused) with one byte of type four bytes of value (int if type=0) |
else | Pointer to 0-terminated string. |
For keywords which are a switch (containing a /S qualifier) then a zero value indicates that the switch was not specified, and a non-zero value indicates that the switch was specified in the input string.
For non-switch keywords a value of zero indicates that the keyword was not present, otherwise it will be a pointer to the actual value for that keyword.
If the keyword is GSTrans’d (contains a /G qualifier) then it points to a block with the following format:
length → two bytes for the length of the string
string → length bytes of string (no terminator)
If the keyword is an evaluated expression (contains a /E qualifier) then it points to a block with the following format:
type → one byte indicating type of result
The rest of the block depends on the value of type. If type = 0 then next 4 bytes will be the integer value. If type is non-zero then the next 2 bytes will be the length of the string followed by the string (no terminator)
If the keyword contains neither a /G or /E qualifier then it points to a zero-terminated string.