	.TITLE		EDITPARSER	HEX-Edit state table for LIB$TPARSE

	.ENABLE	GLOBAL				; look to the PASCAL routines
						; for undefined symbols

	APOSTROPHE	= ^X27		; Define constants
	TILDE		= ^X7E


	$INIT_STATE	EDIT_PARSE_STATE,EDIT_PARSE_KEY

	$STATE	START

	$TRAN	TPA$_EOS,	TPA$_EXIT, SET_EDIT_FLAG
	$TRAN	TPA$_HEX,	EDIT_STATE_5, SET_EDIT,,,1
	$TRAN	'^',		EDIT_STATE_1
	$TRAN	APOSTROPHE,	EDIT_STATE_2,TURN_ON_BLANKS
	$TRAN	TILDE,		EDIT_STATE_3
	$TRAN	'-',		EDIT_STATE_4,TURN_ON_BLANKS

	$END_STATE


	$STATE EDIT_STATE_1	; by character ^c

	$TRAN	TPA$_EOS,	EDIT_STATE_FINAL, SET_PREVIOUS,,,0
	$TRAN	'#',		EDIT_STATE_5, SET_EDIT,,,2
	$TRAN	TPA$_ANY,	EDIT_STATE_5, SET_EDIT,,,3

	$END_STATE


	$STATE EDIT_STATE_2	; by character 'c

	$TRAN	TPA$_EOS,	TPA$_EXIT, INCOMPLETE
	$TRAN	TPA$_ANY,	EDIT_STATE_5, SET_EDIT,,,4

	$END_STATE


	$STATE EDIT_STATE_3	; by character ~c

	$TRAN	TPA$_EOS,	TPA$_EXIT, INCOMPLETE
	$TRAN	'#',		EDIT_STATE_FINAL, SET_EDIT,,,5
	$TRAN	TPA$_ANY,	EDIT_STATE_FINAL, SET_EDIT,,,6

	$END_STATE


	$STATE EDIT_STATE_4	; by character -c

	$TRAN	TPA$_EOS,	TPA$_EXIT, INCOMPLETE
	$TRAN	TPA$_ANY,	EDIT_STATE_5, SET_EDIT,,,7

	$END_STATE


	$STATE	EDIT_STATE_5	; Look for the ^

	$TRAN	'^',		EDIT_STATE_FINAL, SET_PREVIOUS,,,1
	$TRAN	TPA$_LAMBDA,	EDIT_STATE_FINAL

	$END_STATE


	$STATE	EDIT_STATE_FINAL

	$TRAN	TPA$_LAMBDA,	TPA$_EXIT

	$END_STATE


	.END
