WITH Text_IO; USE Text_IO; WITH Ada.Command_Line; USE Ada.Command_Line; WITH Lex; USE Lex; WITH Ada.Command_Line; USE Ada.Command_Line; WITH Ada.Strings.Unbounded; USE Ada.Strings.Unbounded; procedure parse is lFile : Text_IO.File_Type; sFile : Text_IO.File_Type; fFile : File_Type; lFlag : Boolean; eFlag : Boolean; fFlag : Boolean; procedure something is begin FOR i IN 1..Argument_Count LOOP IF (Argument(i) = "/l" OR Argument(i) = "/L") THEN Create(File=>lFile, Mode=>Out_File, Name=>Argument(i + 1)); Put_Line("File " & Argument(i + 1) & " has been opened for outputting lexemes"); lFlag := TRUE; END IF; IF (Argument(i) = "/s" OR Argument(i) = "/S") THEN Create(File=>sFile, Mode=>Out_File, Name=>Argument(i + 1)); Put_Line("File " & Argument(i + 1) & " has been opened for outputting the symbol table"); lFlag := TRUE; END IF; IF (Argument(i) = "/e" OR Argument(i) = "/E") THEN Put_Line("Echo as processed has been set"); eFlag := TRUE; END IF; IF (Argument(i) = "/f" OR Argument(i) = "/F") THEN Open(File=>fFile, Mode=>In_File, Name=>Argument(i + 1)); Put_Line("File open for reading" & Argument(i + 1)); fFlag := TRUE; END IF; END LOOP; EXCEPTION WHEN Status_Error => New_Line; Put_Line("That file is already open."); WHEN Use_Error => New_Line; Put_Line("That file cannot be read."); WHEN OTHERS => New_Line; Put_Line("Unexpected error on opening file."); end something; begin something; Lexeme(lFile,sFile,fFile,lFlag,eFlag,fFlag); end parse;