-- with DYNAMIC_STRING, system; use DYNAMIC_STRING; -- package COMMAND_PARSER is --+---------------------------------------------------------------------- -- -- Unit Type : PACKAGE -- Unit Name : COMMAND_PARSER -- Version : V01.0F -- -- Author : Stephen R. Rainier Date : 10/24/85 -- -- Purpose : Package of routines to massage a command_block. -- -- -- Parameters : -- -- Name Mode(I,O,IO) Type/Subtype Description -- ---- ------------ ------------ ------------ -- CMD_BLOCK IO COMMAND_BLOCK command breakup -- -- -- Modifications : -- -- Name Date Description of Change -- ---- ---- --------------------- -- -- -- Packages "WITH"ed : DYNAMIC_STRING, system -- -- -- Procedure/Function "CALL"s : CMD_PARSE, SHIFT_CMD, ID_CMD -- -- Exceptions : -- -- Name Handled/Raised Description -- ---- -------------- ----------- -- DATA_FILE_ERROR R missing data file -- constraint_error H unknown command code -- name_error H non-existent file -- use_error H incorrect file usage -- -- -- Side Effects : -- -- -- Comments : -- --%---------------------------------------------------------------------- -- -- Declarations -- DATA_FILE_ERROR : exception; type COMMAND_ID is (ADE,APU,ARU,ASE,BUI,CFO,CHE,CMP,CONFIG,DIS,EDT,ENT, ENV,EXI,EXP,FAC,GET,HEL,HOM,INC,LIB,LIS,LNK,MSG,PRT,PUT, QUI,REC,REG,REP,REF,STA,TEST,TID,UNI,VER,VERS,UNKNOWN, ILLEGAL,ILLEGAL_DCL,COMMENT,INDIRECT); type CONFIG_COMMAND_ID is (ACL,AEN,AFA,ATE,AVE,CFA,CEN,CON,CTE,CUT,CVE,DFA, DEN,DTE,DVE,PRE,TRA,UPD); type COMMAND_BLOCK is record LINE : DYN_STRING := D_STRING(""); CODE : COMMAND_ID := UNKNOWN; NAME : DYN_STRING := D_STRING(""); SWITCH : DYN_STRING := D_STRING(""); SUBSWITCH : DYN_STRING := D_STRING(""); P2 : DYN_STRING := D_STRING(""); P3 : DYN_STRING := D_STRING(""); P4 : DYN_STRING := D_STRING(""); P5 : DYN_STRING := D_STRING(""); P6 : DYN_STRING := D_STRING(""); CMP_COUNT : integer := 0; LNK_COUNT : integer := 0; TCODE : system.unsigned_word := 0; IN_FILE : DYN_STRING := D_STRING(""); OUT_FILE : DYN_STRING := D_STRING(""); end record; procedure CMD_PARSE(CMD_BLOCK : in out COMMAND_BLOCK); procedure SHIFT_CMD(CMD_BLOCK : in out COMMAND_BLOCK); procedure ID_CMD(CMD_BLOCK : in out COMMAND_BLOCK; SAVE_FLG: in boolean := true); COMMAND_ARRAY : array(1..5) of COMMAND_BLOCK; CMD_ARRAY_PTR : integer := 0; end COMMAND_PARSER;