.TITLE HDR_PARSE_TBL - A simple parser of the RFC 822/821 header .IDENT /X-1/ ;++ ; FACILITY: yahNEWS ; ; FUNCTIONAL DESCRIPTION: ; ; This module contains a parser table used by LIB$TPARSE routine to ; performs a header parsing and extracting a selected number of fields. ; ; ENVIRONMENT: VMS,WASD HTTP Server ; ; AUTHOR: Ruslan R. Laishev, CREATION-DATE: 1-APR-2001 ; ; MODIFIED BY: ; ;-- ; .PSECT IMPURE,WRT,NOEXE $TPADEF .EXTRN HDR_PARSE_CPY .SBTTL Parser State Table ;++ ; Constants are used for tag a particular header field ;-- HDR_K_FROM = 0 HDR_K_TO = 1 HDR_K_SUBJECT = 2 HDR_K_DATE = 3 $INIT_STATE UFD_STATE,UFD_KEY $STATE START $TRAN 'To', HDR_TO $TRAN 'From', HDR_FROM $TRAN 'Subject', HDR_SUBJECT $TRAN 'Date', HDR_DATE $TRAN TPA$_ANY, START $TRAN TPA$_EOS, TPA$_EXIT ;++ ; Match a 'To:' field ;-- $STATE HDR_TO $TRAN HDR_TO $TRAN ':' $TRAN TPA$_BLANK,STRING,HDR_PARSE_CPY,,,HDR_K_TO ;++ ; Match a 'From:' field ;-- $STATE HDR_FROM $TRAN HDR_FROM $TRAN ':' $TRAN TPA$_BLANK,STRING,HDR_PARSE_CPY,,,HDR_K_FROM ;++ ; Match a 'Subject:' field ;-- $STATE HDR_SUBJECT $TRAN HDR_SUBJECT $TRAN ':' $TRAN TPA$_BLANK,STRING,HDR_PARSE_CPY,,,HDR_K_SUBJECT ;++ ; Match a 'Date:' field ;-- $STATE HDR_DATE $TRAN HDR_DATE $TRAN ':' $TRAN TPA$_BLANK,STRING,HDR_PARSE_CPY,,,HDR_K_DATE ;++ ; Just copy string ;-- $STATE STRING ; $TRAN TPA$_SYMBOL,STRING,HDR_PARSE_CPY $TRAN TPA$_ANY,START $TRAN TPA$_EOS, TPA$_EXIT $END_STATE .END