Changeset 406


Ignore:
Timestamp:
Mar 1, 2015, 10:23:11 AM (5 years ago)
Author:
Maxim Reznik
Message:

Fix association of operators.

Location:
trunk/ada-2012
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/ada-2012/src/asis/asis-elements.adb

    r401 r406  
    134134      return Asis.Attribute_Kinds
    135135   is
    136    begin
    137       if Assigned (Expression) then
    138          Raise_Not_Implemented ("");
    139          return Not_An_Attribute;
    140       else
    141          return Not_An_Attribute;
     136      Map : constant array (F.An_Attribute_Reference)
     137        of Asis.Attribute_Kinds :=
     138          (F.An_Access_Attribute => Asis.An_Access_Attribute,
     139           F.An_Address_Attribute => Asis.An_Address_Attribute,
     140           F.An_Adjacent_Attribute => Asis.An_Adjacent_Attribute,
     141           F.An_Aft_Attribute => Asis.An_Aft_Attribute,
     142           F.An_Alignment_Attribute => Asis.An_Alignment_Attribute,
     143           F.A_Base_Attribute => Asis.A_Base_Attribute,
     144           F.A_Bit_Order_Attribute => Asis.A_Bit_Order_Attribute,
     145           F.A_Body_Version_Attribute => Asis.A_Body_Version_Attribute,
     146           F.A_Callable_Attribute => Asis.A_Callable_Attribute,
     147           F.A_Caller_Attribute => Asis.A_Caller_Attribute,
     148           F.A_Ceiling_Attribute => Asis.A_Ceiling_Attribute,
     149           F.A_Class_Attribute => Asis.A_Class_Attribute,
     150           F.A_Component_Size_Attribute => Asis.A_Component_Size_Attribute,
     151           F.A_Compose_Attribute => Asis.A_Compose_Attribute,
     152           F.A_Constrained_Attribute => Asis.A_Constrained_Attribute,
     153           F.A_Copy_Sign_Attribute => Asis.A_Copy_Sign_Attribute,
     154           F.A_Count_Attribute => Asis.A_Count_Attribute,
     155           F.A_Definite_Attribute => Asis.A_Definite_Attribute,
     156           F.A_Delta_Attribute => Asis.A_Delta_Attribute,
     157           F.A_Denorm_Attribute => Asis.A_Denorm_Attribute,
     158           F.A_Digits_Attribute => Asis.A_Digits_Attribute,
     159           F.An_Exponent_Attribute => Asis.An_Exponent_Attribute,
     160           F.An_External_Tag_Attribute => Asis.An_External_Tag_Attribute,
     161           F.A_First_Attribute => Asis.A_First_Attribute,
     162           F.A_First_Bit_Attribute => Asis.A_First_Bit_Attribute,
     163           F.A_Floor_Attribute => Asis.A_Floor_Attribute,
     164           F.A_Fore_Attribute => Asis.A_Fore_Attribute,
     165           F.A_Fraction_Attribute => Asis.A_Fraction_Attribute,
     166           F.An_Identity_Attribute => Asis.An_Identity_Attribute,
     167           F.An_Image_Attribute => Asis.An_Image_Attribute,
     168           F.An_Input_Attribute => Asis.An_Input_Attribute,
     169           F.A_Last_Attribute => Asis.A_Last_Attribute,
     170           F.A_Last_Bit_Attribute => Asis.A_Last_Bit_Attribute,
     171           F.A_Leading_Part_Attribute => Asis.A_Leading_Part_Attribute,
     172           F.A_Length_Attribute => Asis.A_Length_Attribute,
     173           F.A_Machine_Attribute => Asis.A_Machine_Attribute,
     174           F.A_Machine_Emax_Attribute => Asis.A_Machine_Emax_Attribute,
     175           F.A_Machine_Emin_Attribute => Asis.A_Machine_Emin_Attribute,
     176           F.A_Machine_Mantissa_Attribute => Asis.A_Machine_Mantissa_Attribute,
     177           F.A_Machine_Overflows_Attribute =>
     178             Asis.A_Machine_Overflows_Attribute,
     179           F.A_Machine_Radix_Attribute => Asis.A_Machine_Radix_Attribute,
     180           F.A_Machine_Rounding_Attribute => Asis.A_Machine_Rounding_Attribute,
     181           F.A_Machine_Rounds_Attribute => Asis.A_Machine_Rounds_Attribute,
     182           F.A_Max_Attribute => Asis.A_Max_Attribute,
     183           F.A_Max_Size_In_Storage_Elements_Attribute =>
     184             Asis.A_Max_Size_In_Storage_Elements_Attribute,
     185           F.A_Min_Attribute => Asis.A_Min_Attribute,
     186           F.A_Mod_Attribute => Asis.A_Mod_Attribute,
     187           F.A_Model_Attribute => Asis.A_Model_Attribute,
     188           F.A_Model_Emin_Attribute => Asis.A_Model_Emin_Attribute,
     189           F.A_Model_Epsilon_Attribute => Asis.A_Model_Epsilon_Attribute,
     190           F.A_Model_Mantissa_Attribute => Asis.A_Model_Mantissa_Attribute,
     191           F.A_Model_Small_Attribute => Asis.A_Model_Small_Attribute,
     192           F.A_Modulus_Attribute => Asis.A_Modulus_Attribute,
     193           F.An_Output_Attribute => Asis.An_Output_Attribute,
     194           F.A_Partition_ID_Attribute => Asis.A_Partition_ID_Attribute,
     195           F.A_Pos_Attribute => Asis.A_Pos_Attribute,
     196           F.A_Position_Attribute => Asis.A_Position_Attribute,
     197           F.A_Pred_Attribute => Asis.A_Pred_Attribute,
     198           F.A_Priority_Attribute => Asis.A_Priority_Attribute,
     199           F.A_Range_Attribute => Asis.A_Range_Attribute,
     200           F.A_Read_Attribute => Asis.A_Read_Attribute,
     201           F.A_Remainder_Attribute => Asis.A_Remainder_Attribute,
     202           F.A_Round_Attribute => Asis.A_Round_Attribute,
     203           F.A_Rounding_Attribute => Asis.A_Rounding_Attribute,
     204           F.A_Safe_First_Attribute => Asis.A_Safe_First_Attribute,
     205           F.A_Safe_Last_Attribute => Asis.A_Safe_Last_Attribute,
     206           F.A_Scale_Attribute => Asis.A_Scale_Attribute,
     207           F.A_Scaling_Attribute => Asis.A_Scaling_Attribute,
     208           F.A_Signed_Zeros_Attribute => Asis.A_Signed_Zeros_Attribute,
     209           F.A_Size_Attribute => Asis.A_Size_Attribute,
     210           F.A_Small_Attribute => Asis.A_Small_Attribute,
     211           F.A_Storage_Pool_Attribute => Asis.A_Storage_Pool_Attribute,
     212           F.A_Storage_Size_Attribute => Asis.A_Storage_Size_Attribute,
     213           F.A_Stream_Size_Attribute => Asis.A_Stream_Size_Attribute,
     214           F.A_Succ_Attribute => Asis.A_Succ_Attribute,
     215           F.A_Tag_Attribute => Asis.A_Tag_Attribute,
     216           F.A_Terminated_Attribute => Asis.A_Terminated_Attribute,
     217           F.A_Truncation_Attribute => Asis.A_Truncation_Attribute,
     218           F.An_Unbiased_Rounding_Attribute =>
     219             Asis.An_Unbiased_Rounding_Attribute,
     220           F.An_Unchecked_Access_Attribute =>
     221             Asis.An_Unchecked_Access_Attribute,
     222           F.A_Val_Attribute => Asis.A_Val_Attribute,
     223           F.A_Valid_Attribute => Asis.A_Valid_Attribute,
     224           F.A_Value_Attribute => Asis.A_Value_Attribute,
     225           F.A_Version_Attribute => Asis.A_Version_Attribute,
     226           F.A_Wide_Image_Attribute => Asis.A_Wide_Image_Attribute,
     227           F.A_Wide_Value_Attribute => Asis.A_Wide_Value_Attribute,
     228           F.A_Wide_Wide_Image_Attribute => Asis.A_Wide_Wide_Image_Attribute,
     229           F.A_Wide_Wide_Value_Attribute => Asis.A_Wide_Wide_Value_Attribute,
     230           F.A_Wide_Wide_Width_Attribute => Asis.A_Wide_Wide_Width_Attribute,
     231           F.A_Wide_Width_Attribute => Asis.A_Wide_Width_Attribute,
     232           F.A_Width_Attribute => Asis.A_Width_Attribute,
     233           F.A_Write_Attribute => Asis.A_Write_Attribute,
     234           F.An_Implementation_Defined_Attribute =>
     235             Asis.An_Implementation_Defined_Attribute,
     236           F.An_Unknown_Attribute => Asis.An_Unknown_Attribute);
     237
     238      Kind : constant Asis.Extensions.Flat_Kinds.Element_Flat_Kind :=
     239        Asis.Extensions.Flat_Kinds.Flat_Kind (Expression);
     240   begin
     241      if Kind in Map'Range then
     242         return Map (Kind);
     243      else
     244            return Not_An_Attribute;
    142245      end if;
    143246   end Attribute_Kind;
     
    287390      Tree.Visit (V);
    288391
    289       declare
    290          Result : Asis.Element_List (1 .. Asis.ASIS_Natural (V.Result.Length));
    291          C : Gela.Elements.Context_Items.Context_Item_Sequence_Cursor :=
    292            V.Result.First;
    293       begin
    294          for J in Result'Range loop
    295             Result (J) := (Data => Gela.Elements.Element_Access (C.Element));
    296             C.Next;
    297          end loop;
    298 
    299          return Result;
    300       end;
     392      return Asis.To_List (Gela.Elements.Element_Sequence_Access (V.Result));
    301393   end Context_Clause_Elements;
    302394
  • trunk/ada-2012/src/asis/asis-expressions.adb

    r387 r406  
    1919with Gela.Elements.Numeric_Literals;
    2020with Gela.Elements.Operator_Symbols;
     21with Gela.Elements.Prefixes;
    2122with Gela.Elements.Record_Aggregates;
    2223with Gela.Elements.Selected_Components;
     
    383384   is
    384385      pragma Unreferenced (Normalized);
     386
     387      package Get is
     388         type Visiter is new Gela.Element_Visiters.Visiter with record
     389            Result : Gela.Elements.Element_Sequence_Access;
     390         end record;
     391
     392         overriding procedure Auxiliary_Apply
     393           (Self : in out Visiter;
     394            Node : not null Gela.Elements.Auxiliary_Applies.
     395              Auxiliary_Apply_Access);
     396      end Get;
     397
     398      package body Get is
     399
     400         overriding procedure Auxiliary_Apply
     401           (Self : in out Visiter;
     402            Node : not null Gela.Elements.Auxiliary_Applies.
     403              Auxiliary_Apply_Access)
     404         is
     405            Agg : constant Gela.Elements.Record_Aggregates.
     406              Record_Aggregate_Access :=
     407                Node.Function_Call_Parameters;
     408            Seq : constant Gela.Elements.Associations.
     409              Association_Sequence_Access :=
     410                Agg.Record_Component_Associations;
     411         begin
     412            Self.Result := Gela.Elements.Element_Sequence_Access (Seq);
     413         end Auxiliary_Apply;
     414
     415      end Get;
     416
     417      V       : Get.Visiter;
    385418   begin
    386419      Check_Nil_Element (Expression, "Function_Call_Parameters");
    387       Raise_Not_Implemented ("");
    388       return Asis.Nil_Element_List;
     420      Expression.Data.Visit (V);
     421      return Asis.To_List (V.Result);
    389422   end Function_Call_Parameters;
    390423
     
    624657      return Asis.Expression
    625658   is
     659      package Get is
     660         type Visiter is new Gela.Element_Visiters.Visiter with record
     661            Result : Gela.Elements.Element_Access;
     662         end record;
     663
     664         overriding procedure Auxiliary_Apply
     665           (Self : in out Visiter;
     666            Node : not null Gela.Elements.Auxiliary_Applies.
     667              Auxiliary_Apply_Access);
     668      end Get;
     669
     670      package body Get is
     671
     672         overriding procedure Auxiliary_Apply
     673           (Self : in out Visiter;
     674            Node : not null Gela.Elements.Auxiliary_Applies.
     675              Auxiliary_Apply_Access)
     676         is
     677            Prefix : constant Gela.Elements.Prefixes.Prefix_Access :=
     678              Node.Prefix;
     679         begin
     680            Self.Result := Gela.Elements.Element_Access (Prefix);
     681         end Auxiliary_Apply;
     682
     683      end Get;
     684
     685      V       : Get.Visiter;
    626686   begin
    627687      Check_Nil_Element (Expression, "Prefix");
    628       Raise_Not_Implemented ("");
    629       return Asis.Nil_Element;
     688      Expression.Data.Visit (V);
     689      return (Data => V.Result);
    630690   end Prefix;
    631691
  • trunk/ada-2012/src/asis/asis-extensions-flat_kinds.adb

    r402 r406  
    554554     (Self : in out Visiter;
    555555      Node : not null Gela.Elements.Floating_Point_Definitions.
    556         Floating_Point_Definition_Access)
    557    is null;
     556        Floating_Point_Definition_Access);
    558557
    559558   overriding procedure For_Loop_Statement
     
    17391738   end Flat_Kind;
    17401739
     1740   overriding procedure Floating_Point_Definition
     1741     (Self : in out Visiter;
     1742      Node : not null Gela.Elements.Floating_Point_Definitions.
     1743        Floating_Point_Definition_Access)
     1744   is
     1745      pragma Unreferenced (Node);
     1746   begin
     1747      Self.Result := A_Floating_Point_Definition;
     1748   end Floating_Point_Definition;
     1749
    17411750   overriding procedure Formal_Derived_Type_Definition
    17421751     (Self : in out Visiter;
     
    19301939      Node : not null Gela.Elements.Numeric_Literals.Numeric_Literal_Access)
    19311940   is
    1932       pragma Unreferenced (Node);
    1933    begin
    1934       Self.Result := An_Integer_Literal;
     1941      Comp    : constant Gela.Compilations.Compilation_Access :=
     1942        Node.Enclosing_Compilation;
     1943      Source  : constant League.Strings.Universal_String := Comp.Source;
     1944      Token   : constant Gela.Lexical_Types.Token :=
     1945        Comp.Get_Token (Node.Numeric_Literal_Token);
     1946      Point : constant Natural := Source.Index (Token.First, Token.Last, '.');
     1947   begin
     1948      if Point > 0 then
     1949         Self.Result := A_Real_Literal;
     1950      else
     1951         Self.Result := An_Integer_Literal;
     1952      end if;
    19351953   end Numeric_Literal;
    19361954
  • trunk/ada-2012/tests/asis/asis2xml.gpl/list.txt

    r405 r406  
    11./A/A22006B.ADA 4084006982
    2 ./A/A22006C.ADA 4209917578
    3 ./A/A22006D.ADA 2505936391
    4 ./A/A26007A.ADT 1078513442
    5 ./A/A27003A.ADA 2988623080
     2./A/A22006C.ADA 1450850270
     3./A/A22006D.ADA 294262305
     4./A/A26007A.ADT 4031020732
     5./A/A27003A.ADA 4265514220
    66./A/A29003A.ADA 470204489
    77./A/A2A031A.ADA 84672784
    8 ./A/A33003A.ADA 3558726738
    9 ./A/A34017C.ADA 3218990317
    10 ./A/A35101B.ADA 3952123876
    11 ./A/A35402A.ADA 847347084
     8./A/A33003A.ADA 2548264982
     9./A/A34017C.ADA 301890983
     10./A/A35101B.ADA 3806066222
     11./A/A35402A.ADA 2386360740
     12./A/A35801F.ADA 3918418326
  • trunk/ada-2012/tests/asis/asis2xml.gpl/xml_support.adb

    r343 r406  
    216216                  Control : in out Asis.Traverse_Control;
    217217                  State : in out Info) is
    218       pragma Unreferenced (Control);
    219218
    220219      --  If this is the kind of element that has visible/private
     
    558557                        "prefixed",
    559558                        "false");
     559
     560                     --  Gela traverse function call in AST order instead of
     561                     --  text order. Force this order to match gela.
     562                     declare
     563                        Prefix : constant Asis.Expression :=
     564                          Asis.Expressions.Prefix (Element);
     565
     566                        Args : constant Asis.Association_List :=
     567                          Asis.Expressions.Function_Call_Parameters
     568                            (Element);
     569                     begin
     570                        Traverse_Tree_For_XML
     571                          (Prefix, Control, State);
     572                        for J in Args'Range loop
     573                           Traverse_Tree_For_XML
     574                             (Args (J), Control, State);
     575                        end loop;
     576
     577                        Control := Abandon_Children;
     578                     end;
    560579                  end if;
    561580               when others => null;
  • trunk/ada-2012/tests/asis/def_name/list.txt

    r405 r406  
    33./A/A22006D.ADA +1988800524
    44./A/A26007A.ADT +1310656468
    5 ./A/A27003A.ADA +543928668
     5./A/A27003A.ADA +1345010170
    66./A/A29003A.ADA +3628525875
    77./A/A2A031A.ADA +2866251805
    88./A/A33003A.ADA +158333631
    9 ./A/A34017C.ADA +1820504207
    10 ./A/A35101B.ADA +3960786450
    11 ./A/A35402A.ADA +3341560208
     9./A/A34017C.ADA +2170085078
     10./A/A35101B.ADA +2731034906
     11./A/A35402A.ADA +2889082468
    1212./A/A35801F.ADA 4055769666
    1313./A/A35902C.ADA 540739767
  • trunk/ada-2012/tools/ag/yacc_driver.adb

    r234 r406  
    439439   Piece : Writer;
    440440begin
     441   Resolver.Resolve (AG, Table.all);
     442
    441443   Output.P ("with Gela.Grammars;");
    442444   Output.P ("with Gela.Grammars.LR_Parsers;");
     
    524526   Ada.Text_IO.Put_Line (Piece.Text.To_UTF_8_String);
    525527
    526    Resolver.Resolve (AG, Table.all);
    527528   Gela.Grammars_Debug.Print_Conflicts (AG, Table.all);
    528529
Note: See TracChangeset for help on using the changeset viewer.