-- with GLOBAL_CONSTANTS, SYSTEM_LIBRARY; use GLOBAL_CONSTANTS, SYSTEM_LIBRARY; with DYNAMIC_STRING, COMMAND_PROCESSOR, ENVIRONMENT_CONTROL, COMMAND_PARSER; use DYNAMIC_STRING, COMMAND_PROCESSOR, ENVIRONMENT_CONTROL, COMMAND_PARSER; with system, CONTROL_INTERCEPTION; pragma elaborate(CONTROL_INTERCEPTION); -- procedure TAPSE is --+---------------------------------------------------------------------- -- -- Unit Type : PROCEDURE -- Unit Name : TAPSE -- Version : V01.0F -- -- Author : Stephen R. Rainier Date : 11/22/85 -- -- Purpose : The Ada Programming Support Environment Main Routine. -- -- -- Parameters : None. -- -- -- Modifications : -- -- Name Date Description of Change -- ---- ---- --------------------- -- -- -- Packages "WITH"ed : ENVIRONMENT_CONTROL, COMMAND_PROCESSOR, system, -- GLOBAL_CONSTANTS, CONTROL_INTERCEPTION, -- DYNAMIC_STRING, COMMAND_PARSER, SYSTEM_LIBRARY -- -- Procedure/Function "CALL"s : -- -- -- Exceptions : -- -- Name Handled/Raised Description -- ---- -------------- ----------- -- DATA_FILE_ERROR H missing data file -- USER_ERROR H error reading;no access -- VD_ERROR H error in virtual display -- -- Side Effects : -- -- -- Comments : -- --%---------------------------------------------------------------------- -- -- Declarations -- ENV_BLK : ENVIRONMENT_BLOCK; CMD : COMMAND_BLOCK; begin INIT_ENVIRONMENT(ENV_BLK); -- initialize the environment INIT_ENV_REPORT; -- set up the screen ENV_REPORT.UPDATE(ENV_BLK); -- put current status on TI: loop -- stay here til done -- ENV_REPORT.CLOCK; -- update the clock -- GET_INPUT(CMD.LINE, CMD.TCODE, CMD.IN_FILE); -- read command line CMD_PARSE(CMD); -- parse the command line -- ID_CMD(CMD); -- identify the command -- case CMD.CODE is -- process the command -- when EXI => EXIT_ENVIRONMENT; -- exit TAPSE -- STOP_ENV_REPORT; exit; when QUI => QUIT_ENVIRONMENT; -- Quit TAPSE -- STOP_ENV_REPORT; exit; when CONFIG => if ENV_BLK.PRIVILEDGE = USER then ERROR_MSG(PRIV_ERR); -- No priviledge -- else CONFIG_EXECUTE(CMD, ENV_BLK); -- execute priviledge -- end if; when ILLEGAL_DCL => if ENV_BLK.PRIVILEDGE = CONFIG_MANAGER then CMD.CODE := UNKNOWN; -- OK, if config manager -- COMMAND_EXECUTE(CMD, ENV_BLK); else ERROR_MSG(DCL_ERR); -- illegal TAPSE command -- end if; when ILLEGAL => ERROR_MSG(CMD_ERR); -- illegal DCL format -- when COMMENT => null; -- ignore comments -- when others => COMMAND_EXECUTE(CMD, ENV_BLK); -- execute commands -- end case; end loop; exception when ENVIRONMENT_CONTROL.USER_ERROR => ERROR_MSG(ACC_ERR); when COMMAND_PARSER.DATA_FILE_ERROR => ERROR_MSG(DAT_ERR); STOP_ENV_REPORT; QUIT_ENVIRONMENT; when ENVIRONMENT_CONTROL.VD_ERROR => ERROR_MSG(VD_ERR); STOP_ENV_REPORT; QUIT_ENVIRONMENT; when others => ERROR_MSG(UNKNOWN_ERROR); STOP_ENV_REPORT; QUIT_ENVIRONMENT; raise; end TAPSE;