.TITLE PARSE822_TABLES - TPARSE tables for PARSE822 .IDENT 'V1.1-1' ; ; COPYRIGHT © 1992, 1993 MADGOAT SOFTWARE. ALL RIGHTS RESERVED. ; .EXTRN PARSE822_STORE .DSABL GLOBAL ; ; Determine target platform (avoids having to use ; ARCH_DEFS.MAR) ; .NTYPE R22TYPE,R22 ; get symbol type for "R22" R22TYPE = -5 ; type 5 = register .IF EQ,R22TYPE EVAX = 1 BIGPAGE = 1 ADDRESSBITS = 32 .ENDC P8_K_STORE_MBOX = 231422 P8_K_APPND_MBOX = 861324 P8_K_STORE_NAME = 318417 P8_K_NO_MORE = 627409 ; ; MACRO can't handle some characters as literals. ; LEFTANGLE = 60 RIGHTANGLE = 62 APOSTROPHE = 39 COMMA = 44 LEFTBRACE = 123 VERTBAR = 124 RIGHTBRACE = 125 TILDE = 126 ; Macro to define the internal character store routines ; Call via LIB$TABLE_PARSE is detected by argument count equalling 1. .MACRO STORE_RTN, INTRTN, EXTRTN .PSECT P8_CODE,NOWRT,SHR,PIC,EXE INTRTN: .IF DF,EVAX .CALL_ENTRY HOME_ARGS=TRUE,MAX_ARGS=1 CALLG (AP),G^EXTRTN .IFF .WORD 0 CMPB (AP),#1 BEQL 1$ PUSHL AP CALLS #1,G^EXTRTN RET 1$: CALLG (AP),G^EXTRTN .ENDC RET .ENDM $INIT_STATE PARSE822_STATE, PARSE822_KEY $STATE SKIPWS $TRAN TPA$_BLANK, SKIPWS $TRAN TPA$_LAMBDA, GETADR1 $STATE GETADR1 $TRAN !COMMENT, SKIPWS, P8_STORE,,,P8_K_STORE_NAME $TRAN !MAILBOX, CHKCOM $TRAN !PHRASE, SKIPWS, P8_STORE,,,P8_K_STORE_NAME $STATE MAILBOX $TRAN !COMMENT $TRAN !ROUTEADR, TPA$_EXIT $TRAN !ADDRSPEC, TPA$_EXIT $TRAN TPA$_LAMBDA, TPA$_FAIL $STATE CHKCOM $TRAN TPA$_BLANK, CHKCOM $TRAN TPA$_EOS, TPA$_EXIT $TRAN !COMMENT, CHKCOM, P8_STORE,,,P8_K_STORE_NAME $STATE COMMENT $TRAN '(', COM1 $STATE COM1 $TRAN !COMMENT, COM1 $TRAN TPA$_BLANK, COM1 $TRAN '\', COMLIT $TRAN ')', TPA$_EXIT $TRAN TPA$_EOS, TPA$_FAIL $TRAN TPA$_ANY, COM1 $STATE COMLIT $TRAN TPA$_ANY, COM1 $STATE ROUTEADR $TRAN LEFTANGLE, RTADR1, P8_STORE,,,P8_K_STORE_MBOX $TRAN TPA$_BLANK, ROUTEADR $TRAN TPA$_LAMBDA, TPA$_FAIL $STATE RTADR1 $TRAN '@', RTADR2, P8_STORE,,, P8_K_APPND_MBOX $TRAN !ADDRSPEC, RTADR5 $TRAN TPA$_LAMBDA, TPA$_FAIL $STATE RTADR2 $TRAN !DOMAIN, RTADR3, P8_STORE,,, P8_K_APPND_MBOX $TRAN TPA$_LAMBDA, TPA$_FAIL $STATE RTADR3 $TRAN COMMA, RTADR1, P8_STORE,,, P8_K_APPND_MBOX $TRAN ':', RTADR4, P8_STORE,,, P8_K_APPND_MBOX $TRAN TPA$_BLANK, RTADR3 $TRAN TPA$_LAMBDA, TPA$_FAIL $STATE RTADR4 $TRAN !ADDRSPEC, RTADR5 $TRAN TPA$_LAMBDA, TPA$_FAIL $STATE RTADR5 $TRAN TPA$_BLANK, RTADR5 $TRAN RIGHTANGLE, TPA$_EXIT, P8_STORE,,, P8_K_APPND_MBOX $STATE ADDRSPEC $TRAN TPA$_BLANK, ADDRSPEC $TRAN !COMMENT, ADDRSPEC $TRAN !LCLPART, ADRS1, P8_STORE,,, P8_K_APPND_MBOX $TRAN TPA$_LAMBDA, TPA$_FAIL $STATE ADRS1 $TRAN '@', ADRS2, P8_STORE,,, P8_K_APPND_MBOX $TRAN TPA$_BLANK, ADRS1 $TRAN !COMMENT, ADRS1, P8_STORE,,, P8_K_STORE_NAME $TRAN TPA$_EOS, TPA$_EXIT $TRAN TPA$_LAMBDA, TPA$_FAIL $STATE ADRS2 $TRAN TPA$_BLANK, ADRS2 $TRAN !COMMENT, ADRS2 $TRAN !DOMAIN, TPA$_EXIT, P8_STORE,,, P8_K_APPND_MBOX $TRAN TPA$_LAMBDA, TPA$_FAIL $STATE LCLPART $TRAN !_WORD, LCLP1 $TRAN TPA$_LAMBDA, TPA$_FAIL $STATE LCLP1 $TRAN '.', LCLP2 $TRAN TPA$_LAMBDA, TPA$_EXIT $STATE LCLP2 $TRAN !_WORD, LCLP1 $TRAN TPA$_LAMBDA, TPA$_EXIT $STATE PHRASE $TRAN !_WORD, PHR1 $TRAN !COMMENT, PHR1 $TRAN TPA$_LAMBDA, TPA$_FAIL $STATE PHR1 $TRAN TPA$_BLANK, PHR2 $TRAN TPA$_LAMBDA, TPA$_EXIT $STATE PHR2 $TRAN TPA$_BLANK, PHR2 $TRAN !_WORD, PHR1 $TRAN !COMMENT, PHR1 $TRAN TPA$_LAMBDA, TPA$_EXIT $STATE _WORD $TRAN '"', WORDQ $TRAN !COMMENT, _WORD $TRAN TPA$_ALPHA, WORD1 $TRAN TPA$_DIGIT, WORD1 $TRAN '`', WORD1 $TRAN TILDE, WORD1 $TRAN '!', WORD1 $TRAN '#', WORD1, $TRAN '$', WORD1 $TRAN '%', WORD1 $TRAN '^', WORD1 $TRAN '&', WORD1 $TRAN '*', WORD1 $TRAN '-', WORD1 $TRAN '_', WORD1 $TRAN '=', WORD1 $TRAN '+', WORD1 $TRAN LEFTBRACE, WORD1 $TRAN RIGHTBRACE, WORD1 $TRAN APOSTROPHE, WORD1 $TRAN VERTBAR, WORD1 $TRAN '/', WORD1 $TRAN '?', WORD1 $TRAN TPA$_LAMBDA, TPA$_FAIL $STATE WORDQ $TRAN '\', WORDQ1 $TRAN '"', WORD1 $TRAN TPA$_ANY, WORDQ $STATE WORDQ1 $TRAN TPA$_ANY, WORDQ $STATE WORD1 $TRAN '"', WORDQ $TRAN !COMMENT, WORD1 $TRAN TPA$_ALPHA, WORD1 $TRAN TPA$_DIGIT, WORD1 $TRAN '`', WORD1 $TRAN TILDE, WORD1 $TRAN '!', WORD1 $TRAN '#', WORD1 $TRAN '$', WORD1 $TRAN '%', WORD1 $TRAN '^', WORD1 $TRAN '&', WORD1 $TRAN '*', WORD1 $TRAN '-', WORD1 $TRAN '_', WORD1 $TRAN '=', WORD1 $TRAN '+', WORD1 $TRAN LEFTBRACE, WORD1 $TRAN RIGHTBRACE, WORD1 $TRAN APOSTROPHE, WORD1 $TRAN VERTBAR, WORD1 $TRAN '/', WORD1 $TRAN '?', WORD1 $TRAN TPA$_LAMBDA, TPA$_EXIT $STATE DOMAIN $TRAN !SUBDOMAIN, DOM1 $TRAN TPA$_LAMBDA, TPA$_FAIL $STATE DOM1 $TRAN '.', DOM2 $TRAN TPA$_LAMBDA, TPA$_EXIT $STATE DOM2 $TRAN !SUBDOMAIN, DOM1 $TRAN TPA$_LAMBDA, TPA$_EXIT $STATE SUBDOMAIN $TRAN '[', SUBDLIT $TRAN '`', SUBD1 $TRAN TILDE, SUBD1 $TRAN '!', SUBD1 $TRAN '#', SUBD1 $TRAN '$', SUBD1 $TRAN '%', SUBD1 $TRAN '^', SUBD1 $TRAN '&', SUBD1 $TRAN '*', SUBD1 $TRAN '-', SUBD1 $TRAN '_', SUBD1 $TRAN '=', SUBD1 $TRAN '+', SUBD1 $TRAN LEFTBRACE, SUBD1 $TRAN RIGHTBRACE, SUBD1 $TRAN APOSTROPHE, SUBD1 $TRAN VERTBAR, SUBD1 $TRAN '/', SUBD1 $TRAN '?', SUBD1 $TRAN TPA$_ALPHA, SUBD1 $TRAN TPA$_DIGIT, SUBD1 $TRAN TPA$_LAMBDA, TPA$_FAIL $STATE SUBDLIT $TRAN '\', SUBDLQ $TRAN ']', TPA$_EXIT $TRAN TPA$_ANY, SUBDLIT $STATE SUBDLQ $TRAN TPA$_ANY, SUBDLIT $STATE SUBD1 $TRAN '`', SUBD1 $TRAN TILDE, SUBD1 $TRAN '!', SUBD1 $TRAN '#', SUBD1 $TRAN '$', SUBD1 $TRAN '%', SUBD1 $TRAN '^', SUBD1 $TRAN '&', SUBD1 $TRAN '*', SUBD1 $TRAN '-', SUBD1 $TRAN '_', SUBD1 $TRAN '=', SUBD1 $TRAN '+', SUBD1 $TRAN LEFTBRACE, SUBD1 $TRAN RIGHTBRACE, SUBD1 $TRAN APOSTROPHE, SUBD1 $TRAN VERTBAR, SUBD1 $TRAN '/', SUBD1 $TRAN '?', SUBD1 $TRAN TPA$_ALPHA, SUBD1 $TRAN TPA$_DIGIT, SUBD1 $TRAN TPA$_LAMBDA, TPA$_EXIT $END_STATE STORE_RTN P8_STORE,PARSE822_STORE .END