.TITLE VTL_HDR_PARSE_TBL - A table for scaning VTL tokens/lexems .IDENT /X-1/ ;++ ; FACILITY: VMS Tool Language ; ; FUNCTIONAL DESCRIPTION: ; ; This module contains a table of lexems used by LIB$TPARSE routine. ; ; ENVIRONMENT: OpenVMS ; ; AUTHOR: Ruslan R. Laishev, CREATION-DATE: 19-MAR-2009 ; ; MODIFIED BY: ; ;-- ; .PSECT IMPURE,WRT,NOEXE $TPADEF ;TParse stuff .LIBRARY /VTLDEF.MLB/ CR = 10 LF = 13 SPACE = 32 .EXTRN TOK_VAL .EXTRN TOK_UNWIND .SBTTL Parser State Table $VTLDEF $INIT_STATE UFD_STATE,UFD_KEY $STATE START $TRAN TPA$_BLANK, START $TRAN CR, START $TRAN LF, START $TRAN TPA$_EOS, TPA$_EXIT,,,,VTL_TOK_EOS ; ; Is there directives ? ; $TRAN VTL_TOK_DOT, DIRECTIVES ; ; Tokens ; $TRAN 'routine', TPA$_EXIT,,,,VTL_TOK_ROUTINE $TRAN 'unsigned', TPA$_EXIT,,,,VTL_TOK_UNSIGNED $TRAN 'struct', TPA$_EXIT,,,,VTL_TOK_STRUCT $TRAN 'typedef', TPA$_EXIT,,,,VTL_TOK_TYPEDEF $TRAN 'const', TPA$_EXIT,,,,VTL_TOK_CONST $TRAN 'void', TPA$_EXIT,,,,VTL_TOK_VOID $TRAN 'byte', TPA$_EXIT,,,,VTL_TOK_BYTE $TRAN 'word', TPA$_EXIT,,,,VTL_TOK_WORD $TRAN 'long', TPA$_EXIT,,,,VTL_TOK_LONG $TRAN 'quad', TPA$_EXIT,,,,VTL_TOK_QUAD $TRAN 'float', TPA$_EXIT,,,,VTL_TOK_FLOAT $TRAN 'double', TPA$_EXIT,,,,VTL_TOK_DOUBLE $TRAN 'string', TPA$_EXIT,,,,VTL_TOK_STRING $TRAN 'if', TPA$_EXIT,,,,VTL_TOK_IF $TRAN 'then', TPA$_EXIT,,,,VTL_TOK_THEN $TRAN 'else', TPA$_EXIT,,,,VTL_TOK_ELSE $TRAN 'endif', TPA$_EXIT,,,,VTL_TOK_ENDIF $TRAN TPA$_DECIMAL, TPA$_EXIT,TOK_VAL,,,VTL_TOK_DIGIT $TRAN VTL_TOK_QUOTE, QUOTED $TRAN TPA$_SYMBOL, TPA$_EXIT,TOK_VAL,,,VTL_TOK_ID $TRAN VTL_TOK_PERCENT,DIGIT,TOK_VAL,,,VTL_TOK_DIGIT $TRAN TPA$_ANY, TPA$_EXIT $TRAN TPA$_EOS, TPA$_EXIT,,,,VTL_TOK_EOS ; .include "file" ; .include ; .include file ; .cdd --//-- ; .defs --//-- ; $STATE DIRECTIVES $TRAN 'include', FSPEC,,,,VTL_TOK_INCLUDE $TRAN 'defs', FSPEC,,,,VTL_TOK_DEFS $TRAN 'cdd', FSPEC,,,,VTL_TOK_CDD $TRAN TPA$_ANY, TPA$_FAIL $STATE FSPEC $TRAN TPA$_BLANK $STATE $TRAN VTL_TOK_QUOTE, FSPEC2 $TRAN VTL_TOK_AN_OP, FSPEC2 $TRAN TPA$_FILESPEC, TPA$_EXIT,TOK_VAL $TRAN TPA$_ANY, TPA$_FAIL $TRAN TPA$_EOS, TPA$_FAIL $STATE FSPEC2 $TRAN TPA$_FILESPEC, FSPEC3,TOK_VAL $TRAN TPA$_ANY, TPA$_FAIL $TRAN TPA$_EOS, TPA$_FAIL $STATE FSPEC3 $TRAN VTL_TOK_QUOTE, TPA$_EXIT $TRAN VTL_TOK_AN_CL, TPA$_EXIT $TRAN TPA$_ANY, TPA$_FAIL $TRAN TPA$_EOS, TPA$_FAIL ; ; %x, %d, %o ; ; $STATE DIGIT $TRAN 'x', HEX $TRAN 'X', HEX $TRAN 'd', DEC $TRAN 'D', DEC $TRAN 'o', OCT $TRAN 'O', OCT $TRAN TPA$_ANY, TPA$_FAIL $STATE HEX $TRAN TPA$_HEX, TPA$_EXIT,TOK_VAL,,,VTL_TOK_DIGIT $STATE DEC $TRAN TPA$_DECIMAL, TPA$_EXIT,TOK_VAL,,,VTL_TOK_DIGIT $STATE OCT $TRAN TPA$_OCTAL, TPA$_EXIT,TOK_VAL,,,VTL_TOK_DIGIT ; ; Quoted string -> "Hello World!" ; $STATE QUOTED $TRAN VTL_TOK_QUOTE, TPA$_EXIT,,,,VTL_TOK_QUOTED $TRAN TPA$_ANY, QUOTED,TOK_CHADD,,,VTL_TOK_DIGIT $TRAN CR, TPA$_FAIL $TRAN LF, TPA$_FAIL $TRAN TPA$_EOS, TPA$_FAIL ;++ ; ;-- $END_STATE .END