Changeset 403


Ignore:
Timestamp:
Feb 25, 2015, 12:51:44 PM (5 years ago)
Author:
Maxim Reznik
Message:

Add "type category" interpretation

Location:
trunk/ada-2012/src
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/ada-2012/src/api/gela-interpretations.ads

    r391 r403  
    33with Gela.Lexical_Types;
    44with Gela.Semantic_Types;
     5with Gela.Type_Views;
    56
    67package Gela.Interpretations is
     
    3536     (Self   : in out Interpretation_Manager;
    3637      Name   : Gela.Elements.Defining_Names.Defining_Name_Access;
    37       Down   : Interpretation_Index_Array;
     38      Down   : Gela.Interpretations.Interpretation_Index_Array;
    3839      Result : in out Gela.Interpretations.Interpretation_Set_Index)
    3940        is abstract;
     
    4344     (Self   : in out Interpretation_Manager;
    4445      Tipe   : Gela.Semantic_Types.Type_Index;
    45       Down   : Interpretation_Index_Array;
     46      Down   : Gela.Interpretations.Interpretation_Index_Array;
    4647      Result : in out Gela.Interpretations.Interpretation_Set_Index)
    4748        is abstract;
    4849   --  Extend Result with new interpretation of expression with given Type
     50
     51   not overriding procedure Add_Expression_Category
     52     (Self   : in out Interpretation_Manager;
     53      Kinds  : Gela.Type_Views.Category_Kind_Set;
     54      Down   : Gela.Interpretations.Interpretation_Index_Array;
     55      Result : in out Gela.Interpretations.Interpretation_Set_Index)
     56        is abstract;
     57   --  Extend Result with new interpretation of expression in given categories
    4958
    5059   not overriding procedure Add_Attr_Function
     
    101110      Down   : Gela.Interpretations.Interpretation_Index_Array) is null;
    102111   --  Called for each expression interpretation
     112
     113   not overriding procedure On_Expression_Category
     114     (Self   : in out Visiter;
     115      Kinds  : Gela.Type_Views.Category_Kind_Set;
     116      Down   : Gela.Interpretations.Interpretation_Index_Array) is null;
     117   --  Called for each category of expression interpretation
    103118
    104119   not overriding procedure On_Attr_Function
  • trunk/ada-2012/src/api/gela-type_views.ads

    r396 r403  
    3737      A_Private,
    3838      An_Incomplete);
     39
     40   type Category_Kind_Set is array (Category_Kinds) of Boolean;
    3941
    4042   not overriding function Category
  • trunk/ada-2012/src/semantic/gela-int-visiters.ads

    r391 r403  
    11with Gela.Int.Attr_Functions;
     2with Gela.Int.Categories;
    23with Gela.Int.Defining_Names;
    34with Gela.Int.Expressions;
     
    2728      Value : Gela.Int.Expressions.Expression) is abstract;
    2829
     30   not overriding procedure Expression_Category
     31     (Self  : access Visiter;
     32      Value : Gela.Int.Categories.Category) is abstract;
     33
    2934   not overriding procedure Placeholder
    3035     (Self  : access Visiter;
  • trunk/ada-2012/src/semantic/gela-plain_interpretations.adb

    r391 r403  
    11with Gela.Int.Attr_Functions;
     2with Gela.Int.Categories;
    23with Gela.Int.Defining_Names;
    34with Gela.Int.Expressions;
     
    100101   end Add_Expression;
    101102
     103   -----------------------------
     104   -- Add_Expression_Category --
     105   -----------------------------
     106
     107   overriding procedure Add_Expression_Category
     108     (Self   : in out Interpretation_Manager;
     109      Kinds  : Gela.Type_Views.Category_Kind_Set;
     110      Down   : Gela.Interpretations.Interpretation_Index_Array;
     111      Result : in out Gela.Interpretations.Interpretation_Set_Index)
     112   is
     113      Item : constant Gela.Int.Interpretation_Access :=
     114        new Gela.Int.Categories.Category'
     115          (Gela.Int.Categories.Create
     116             (Down  => Down,
     117              Kinds => Kinds));
     118   begin
     119      Self.Plian_Int_Set.Add (Result, Item);
     120   end Add_Expression_Category;
     121
    102122   ---------------------
    103123   -- Add_Placeholder --
     
    379399            Value : Gela.Int.Expressions.Expression);
    380400
     401         overriding procedure Expression_Category
     402           (Self  : access Visiter;
     403            Value : Gela.Int.Categories.Category);
     404
    381405         overriding procedure Placeholder
    382406           (Self  : access Visiter;
     
    443467               Down  => Value.Down);
    444468         end Expression;
     469
     470         -------------------------
     471         -- Expression_Category --
     472         -------------------------
     473
     474         overriding procedure Expression_Category
     475           (Self  : access Visiter;
     476            Value : Gela.Int.Categories.Category)
     477         is
     478            pragma Unreferenced (Self);
     479         begin
     480            Target.On_Expression_Category
     481              (Kinds  => Value.Kinds,
     482               Down   => Value.Down);
     483         end Expression_Category;
    445484
    446485         -----------------
  • trunk/ada-2012/src/semantic/gela-plain_interpretations.ads

    r391 r403  
    33with Ada.Containers.Vectors;
    44
     5with Gela.Contexts;
    56with Gela.Elements.Defining_Names;
    6 with Gela.Contexts;
     7with Gela.Int_Sets;
    78with Gela.Interpretations;
    89with Gela.Lexical_Types;
     10with Gela.Plian_Int_Sets;
    911with Gela.Semantic_Types;
    10 with Gela.Plian_Int_Sets;
    11 with Gela.Int_Sets;
     12with Gela.Type_Views;
    1213
    1314package Gela.Plain_Interpretations is
     
    6465     (Self   : in out Interpretation_Manager;
    6566      Tipe   : Gela.Semantic_Types.Type_Index;
     67      Down   : Gela.Interpretations.Interpretation_Index_Array;
     68      Result : in out Gela.Interpretations.Interpretation_Set_Index);
     69
     70   overriding procedure Add_Expression_Category
     71     (Self   : in out Interpretation_Manager;
     72      Kinds  : Gela.Type_Views.Category_Kind_Set;
    6673      Down   : Gela.Interpretations.Interpretation_Index_Array;
    6774      Result : in out Gela.Interpretations.Interpretation_Set_Index);
  • trunk/ada-2012/src/semantic/gela-plian_int_sets.adb

    r391 r403  
    11with Gela.Int.Attr_Functions;
     2with Gela.Int.Categories;
    23with Gela.Int.Defining_Names;
    34with Gela.Int.Expressions;
     
    227228            Value : Gela.Int.Expressions.Expression);
    228229
     230         overriding procedure Expression_Category
     231           (Self  : access Visiter;
     232            Value : Gela.Int.Categories.Category);
     233
    229234         overriding procedure Placeholder
    230235           (Self  : access Visiter;
     
    265270         end Expression;
    266271
     272         overriding procedure Expression_Category
     273           (Self  : access Visiter;
     274            Value : Gela.Int.Categories.Category)
     275         is
     276            pragma Unreferenced (Self);
     277         begin
     278            Target.On_Expression_Category
     279              (Kinds => Value.Kinds,
     280               Down  => Value.Down);
     281         end Expression_Category;
     282
    267283         overriding procedure Attr_Function
    268284           (Self  : access Visiter;
Note: See TracChangeset for help on using the changeset viewer.