1--  Iir to ortho translator.
2--  Copyright (C) 2002 - 2014 Tristan Gingold
3--
4--  This program is free software: you can redistribute it and/or modify
5--  it under the terms of the GNU General Public License as published by
6--  the Free Software Foundation, either version 2 of the License, or
7--  (at your option) any later version.
8--
9--  This program is distributed in the hope that it will be useful,
10--  but WITHOUT ANY WARRANTY; without even the implied warranty of
11--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12--  GNU General Public License for more details.
13--
14--  You should have received a copy of the GNU General Public License
15--  along with this program.  If not, see <gnu.org/licenses>.
16
17package Trans.Chap14 is
18   function Translate_Array_Attribute_To_Range (Expr : Iir) return Mnode;
19
20   --  Read signal value FIELD of signal SIG.
21   function Get_Signal_Value_Field
22     (Sig : O_Enode; Sig_Type : Iir; Field : O_Fnode)
23         return O_Lnode;
24
25   function Get_Signal_Field (Sig : Mnode; Field : O_Fnode) return O_Lnode;
26
27   function Translate_Length_Array_Attribute (Expr : Iir; Rtype : Iir)
28                                                 return O_Enode;
29   function Translate_Low_Array_Attribute (Expr : Iir) return O_Enode;
30   function Translate_High_Array_Attribute (Expr : Iir) return O_Enode;
31   function Translate_Range_Array_Attribute (Expr : Iir) return O_Lnode;
32   function Translate_Right_Array_Attribute (Expr : Iir) return O_Enode;
33   function Translate_Left_Array_Attribute (Expr : Iir) return O_Enode;
34   function Translate_Ascending_Array_Attribute (Expr : Iir) return O_Enode;
35
36   function Translate_High_Low_Type_Attribute
37     (Atype : Iir; Is_High : Boolean) return O_Enode;
38
39   --  Return the value of the left bound/right bound/direction of scalar
40   --  type ATYPE.
41   function Translate_Left_Type_Attribute (Atype : Iir) return O_Enode;
42   function Translate_Right_Type_Attribute (Atype : Iir) return O_Enode;
43   function Translate_Dir_Type_Attribute (Atype : Iir) return O_Enode;
44
45   function Translate_Val_Attribute (Attr : Iir) return O_Enode;
46   function Translate_Pos_Attribute (Attr : Iir; Res_Type : Iir)
47                                        return O_Enode;
48
49   function Translate_Succ_Pred_Attribute (Attr : Iir) return O_Enode;
50
51   function Translate_Image_Attribute (Attr : Iir) return O_Enode;
52   function Translate_Value_Attribute (Attr : Iir) return O_Enode;
53
54   function Translate_Event_Attribute (Attr : Iir) return O_Enode;
55   function Translate_Active_Attribute (Attr : Iir) return O_Enode;
56   function Translate_Last_Value_Attribute (Attr : Iir) return O_Enode;
57
58   function Translate_Last_Time_Attribute (Prefix : Iir; Field : O_Fnode)
59                                              return O_Enode;
60
61   function Translate_Driving_Value_Attribute (Attr : Iir) return O_Enode;
62
63   function Translate_Driving_Attribute (Attr : Iir) return O_Enode;
64
65   function Translate_Path_Instance_Name_Attribute (Attr : Iir)
66                                                       return O_Enode;
67end Trans.Chap14;
68