VMS Help
RTL Routines, LIB$, LIB$TABLE_PARSE
*Conan The Librarian (sorry for the slow response - running on an old VAX)
|
|
The Table-Driven Finite-State Parser routine is a general-
purpose, table-driven parser implemented as a finite-state
automaton, with extensions that make it suitable for a wide
range of applications. It parses a string and returns a message
indicating whether or not the input string is valid.
LIB$T[ABLE_]PARSE is called with the address of an argument
block, the address of a state table, and the address of a keyword
table. The input string is specified as part of the argument
block.
The LIB$ facility supports the following two versions of the
Table-Driven Finite-State Parser:
LIB$TPARSE Available on VAX systems.
LIB$TPARSE is available on Alpha systems in
translated form. In this form, it is applicable
to translated VAX images only.
LIB$TABLE_PARSE Available on VAX and Alpha systems.
LIB$TPARSE and LIB$TABLE_PARSE differ mainly in the way they pass
arguments to action routines.
The term LIB$T[ABLE_]PARSE is used here to describe concepts that
apply to both LIB$TPARSE and LIB$TABLE_PARSE.
Format
LIB$TPARSE/LIB$TABLE_PARSE argument-block ,state-table
,key-table
OpenVMS usage:cond_value
type: longword (unsigned)
access: write only
mechanism: by value
argument-block
OpenVMS usage:unspecified
type: unspecified
access: modify
mechanism: by reference
LIB$T[ABLE_]PARSE argument block. The argument-block argument
contains the address of this argument block.
The LIB$T[ABLE_]PARSE argument block contains information about
the state of the parse operation. It is a means of communication
between LIB$T[ABLE_]PARSE and the user's program. It is passed as
an argument to all action routines.
You must declare and initialize the argument block.
LIB$T[ABLE_]PARSE supports the following argument blocks:
o A 32-bit argument block that accommodates longword addresses,
values, and input tokens on both VAX and Alpha systems.
On Alpha systems, this argument block also accommodates a
numeric token whose binary representation is less than or
equal to 2**64.
o A 64-bit argument block that accommodates quadword addresses,
values, and input tokens on Alpha systems.
state-table
OpenVMS usage:unspecified
type: unspecified
access: read only
mechanism: by reference
Starting state in the state table. The state-table argument is
the address of this starting state. Usually, the name appearing
as the first argument of the $INIT_STATE macro is used.
You must define the state table for your parser.
LIB$T[ABLE_]PARSE provides macros in the MACRO and BLISS
languages for this purpose.
key-table
OpenVMS usage:unspecified
type: unspecified
access: read only
mechanism: by reference
Keyword table. The key-table argument is the address of this
keyword table. This name must be the same as that which appears
as the second argument of the $INIT_STATE macro.
You must only assign a name to the keyword table. The
LIB$T[ABLE_]PARSE macros allocate and define the table.
[legal]
[privacy]
[GNU]
[policy]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.