diff --git a/src/main.adb b/src/main.adb index 4dab5c8..92e1b36 100644 --- a/src/main.adb +++ b/src/main.adb @@ -10,19 +10,19 @@ with Ada.Strings.Unbounded; -- @return -- @description Main Function call procedure Main is - type InstructionList is array(1..65536) of String(1..64); + type InstructionList is array (1 .. 65_536) of String (1 .. 64); type ArgumentParserState is (PSInit, PSFilename, PSLanguage, PSRecycle, PSFinish, PSError); - type FileList is array(1..128) of Unbounded.Unbounded_String; - ParserState : ArgumentParserState := Init; - Filename : Unbounded.Unbounded_String := - Unbounded.To_Unbounded_String ("bin.out"); - Language : Unbounded.Unbounded_String := - Unbounded.To_Unbounded_String ("VHDL"); - Recycle : Boolean := False; - InputFileList : FileList; - InputFileListIndex : Integer := 1; - Argument : String; + type FileList is array (1 .. 128) of Ada.Strings.Unbounded.Unbounded_String; + ParserState : ArgumentParserState := PSInit; + Filename : Ada.Strings.Unbounded.Unbounded_String := + Ada.Strings.Unbounded.To_Unbounded_String ("bin.out"); + Language : Ada.Strings.Unbounded.Unbounded_String := + Ada.Strings.Unbounded.To_Unbounded_String ("VHDL"); + Recycle : Boolean := False; + InputFileList : FileList; + InputFileListIndex : Integer := 1; + Argument : Ada.Strings.Unbounded.Unbounded_String; Argumenterror : exception; Languageoptionerror : exception; @@ -30,51 +30,56 @@ begin -- Check input file limit for arguments and lowest argument if Ada.Command_Line.Argument_Count > 128 then - Text_IO.Put_Line ("To many arguments!"); + Ada.Text_IO.Put_Line ("To many arguments!"); elsif Ada.Command_Line.Argument_Count < 2 then - Text_IO.Put_Line ("Not enough arguments!"); + Ada.Text_IO.Put_Line ("Not enough arguments!"); end if; for Index in 1 .. Ada.Command_Line.Argument_Count loop - Argument := Command_Line.Argument(Index); + Argument := + Ada.Strings.Unbounded.To_Unbounded_String + (Ada.Command_Line.Argument (Index)); case ParserState is - when Init => - if Argument = "-o" then + when PSInit => + if Ada.Strings.Unbounded.To_String (Argument) = "-o" then ParserState := PSFilename; - elsif Argument = "-x" then + elsif Ada.Strings.Unbounded.To_String (Argument) = "-x" then ParserState := PSLanguage; - elsif Argument = "-r" then + elsif Ada.Strings.Unbounded.To_String (Argument) = "-r" then ParserState := PSRecycle; else ParserState := PSError; end if; - when Filename => + when PSFilename => ParserState := PSInit; - Filename := Unbounded.To_Unbounded_String (Argument); - when Language => + Filename := Argument; + when PSLanguage => ParserState := PSInit; - Language := PSUnbounded.To_Unbounded_String (Argument); - when Recycle => + Language := Argument; + when PSRecycle => ParserState := PSInit; Recycle := True; when PSError => ParserState := PSError; raise Argumenterror; - when PSFinish => - ParserState := PSFinish; - InputFileListIndex := InputFileListIndex + 1; - InputFileList(InputFileListIndex) := Argument; + when PSFinish => + ParserState := PSFinish; + InputFileListIndex := InputFileListIndex + 1; + InputFileList (InputFileListIndex) := Argument; when others => - ParserState := PSFinish; - InputFileListIndex := 1; - InputFileList(InputFileListIndex) := Argument; + ParserState := PSFinish; + InputFileListIndex := 1; + InputFileList (InputFileListIndex) := Argument; end case; end loop; -- Check the language for correct values - if not (Language = "VHDL" or Language = "C") then - Text_Io.Put_Line - ("ERROR: The language " & Unbounded.To_String (Language) & + if not + (Ada.Strings.Unbounded.To_String (Language) = "VHDL" or + Ada.Strings.Unbounded.To_String (Language) = "C") + then + Ada.Text_IO.Put_Line + ("ERROR: The language " & Ada.Strings.Unbounded.To_String (Language) & " is not available!"); raise Languageoptionerror; end if;