-- Abstract : -- -- See spec -- -- Copyright (C) 2017 - 2022 Free Software Foundation, Inc. -- -- This library is free software; you can redistribute it and/or modify it -- under terms of the GNU General Public License as published by the Free -- Software Foundation; either version 3, or (at your option) any later -- version. This library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- -- TABILITY or FITNESS FOR A PARTICULAR PURPOSE. -- As a special exception under Section 7 of GPL version 3, you are granted -- additional permissions described in the GCC Runtime Library Exception, -- version 3.1, as published by the Free Software Foundation. pragma License (Modified_GPL); with Ada.Strings.Fixed; with Gpr_Process_Actions; package body Wisi.Gpr is overriding procedure Initialize (Data : in out Parse_Data_Type) is use all type Gpr_Process_Actions.Token_Enum_ID; begin Data.First_Comment_ID := +COMMENT_ID; Data.Last_Comment_ID := WisiToken.Invalid_Token_ID; Data.Left_Paren_ID := WisiToken.Invalid_Token_ID; Data.Right_Paren_ID := WisiToken.Invalid_Token_ID; Data.Statement_IDs.Append (+compilation_unit_ID); Data.Statement_IDs.Append (+with_clause_ID); Data.Statement_IDs.Append (+declarative_item_ID); Data.Statement_IDs.Append (+wisitoken_accept_ID); end Initialize; overriding procedure Parse_Language_Params (Data : in out Parse_Data_Type; Params : in String) is pragma Unreferenced (Data); use Ada.Strings.Fixed; First : Integer := Params'First; Last : Integer := Index (Params, " "); begin if Params /= "" then -- must match [1] wisi-parse-format-language-options Gpr_Indent := Integer'Value (Params (First .. Last - 1)); First := Last + 1; Last := Index (Params, " ", First); Gpr_Indent_Broken := Integer'Value (Params (First .. Last - 1)); First := Last + 1; Gpr_Indent_When := Integer'Value (Params (First .. Params'Last)); end if; end Parse_Language_Params; overriding function Get_Token_IDs (User_Data : in Parse_Data_Type; Command_Line : in String; Last : in out Integer) return WisiToken.Token_ID_Arrays.Vector is pragma Unreferenced (User_Data); use Gpr_Process_Actions; begin return IDs : WisiToken.Token_ID_Arrays.Vector do Wisi.Skip (Command_Line, Last, '('); loop IDs.Append (+Token_Enum_ID'Value (Wisi.Get_Enum (Command_Line, Last))); Wisi.Skip (Command_Line, Last, ' '); exit when Command_Line (Last + 1) = ')'; end loop; Last := Last + 1; end return; end Get_Token_IDs; end Wisi.Gpr;