aboutsummaryrefslogtreecommitdiffstats
path: root/src/edif/edif-nodes.ads
diff options
context:
space:
mode:
Diffstat (limited to 'src/edif/edif-nodes.ads')
-rw-r--r--src/edif/edif-nodes.ads418
1 files changed, 418 insertions, 0 deletions
diff --git a/src/edif/edif-nodes.ads b/src/edif/edif-nodes.ads
new file mode 100644
index 000000000..78d413d0f
--- /dev/null
+++ b/src/edif/edif-nodes.ads
@@ -0,0 +1,418 @@
+with Types; use Types;
+
+package Edif.Nodes is
+
+ type Nkind is
+ (
+ N_Error,
+
+ -- Generic nodes.
+ N_Keyword,
+ N_Symbol,
+ N_Number,
+ N_String,
+ N_Chain,
+
+ -- Edif 2.0.0 nodes
+ N_Edif,
+ N_External,
+ N_Cell,
+ N_View,
+ N_Port,
+ N_Library,
+ N_Interface,
+ N_Instance,
+ N_Net,
+ N_Design,
+ N_Port_Ref,
+ N_Cell_Ref,
+ N_View_Ref,
+ N_Member,
+ N_Property,
+ N_Userdata,
+ N_Port_Instance,
+
+ N_Array,
+ N_Rename,
+ N_Boolean
+
+ );
+
+ type Node is new Nat32;
+ for Node'Size use 32;
+
+ Null_Node : constant Node := 0;
+
+ type Direction_Type is
+ (
+ Dir_Input,
+ Dir_Output,
+ Dir_Inout
+ );
+
+ -- The next line marks the start of the node description.
+ -- Start of Nkind.
+
+ -- N_Error (X1)
+
+ -- N_Keyword (X1)
+ -- Get/Set_Keyword (Field1)
+ --
+ -- Get/Set_CDR (Field2)
+
+ -- N_Chain (X1)
+ -- Get/Set_CAR (Field1)
+ --
+ -- Get/Set_CDR (Field2)
+
+ -- N_Symbol (X1)
+ -- Get/Set_Symbol (Field1)
+
+ -- N_Number (X1)
+ -- Get/Set_Number (Field1)
+
+ -- N_String (X1)
+ -- Get/Set_String_Id (Field1)
+ --
+ -- Get/Set_String_Len (Field2)
+
+ -- N_Edif (X4)
+ -- Get/Set_Name (Field1)
+ --
+ -- Get/Set_Edif_Version (Field3)
+ --
+ -- Get/Set_Edif_Level (Field2)
+ --
+ -- Get/Set_Keyword_Map (Field4)
+ --
+ -- Get/Set_Status (Field5)
+ --
+ -- Get/Set_External_Chain (Field6)
+ --
+ -- Get/Set_Library_Chain (Field7)
+ --
+ -- Get/Set_Design (Field8)
+
+ -- N_External (X2)
+ -- N_Library (X2)
+ -- Get/Set_Name (Field1)
+ --
+ -- Get/Set_Edif_Level (Field2)
+ --
+ -- Get/Set_Technology (Field3)
+ --
+ -- Get/Set_Cells_Chain (Field4)
+ --
+ -- Get/Set_Chain (Field5)
+
+ -- N_Cell (X2)
+ -- Get/Set_Name (Field1)
+ --
+ -- Get/Set_Cell_Type (Field2)
+ --
+ -- Get/Set_Properties_Chain (Field3)
+ --
+ -- Get/Set_View (Field4)
+ --
+ -- Get/Set_Chain (Field5)
+
+ -- N_Interface (X2)
+ -- Get/Set_Ports_Chain (Field2)
+ --
+ -- Get/Set_Properties_Chain (Field3)
+ --
+ -- Get/Set_Designator (Field4)
+
+ -- N_View (X4)
+ -- Get/Set_Name (Field1)
+ --
+ -- Get/Set_View_Type (Field2)
+ --
+ -- Get/Set_Interface (Field6)
+ --
+ -- Get/Set_Properties_Chain (Field3)
+ --
+ -- Instances and nets.
+ -- Get/Set_Contents_Chain (Field4)
+ --
+ -- Get/Set_Chain (Field5)
+
+ -- N_Port (X2)
+ -- Get/Set_Name (Field1)
+ --
+ -- Get/Set_Direction (State1)
+ --
+ -- Get/Set_Properties_Chain (Field3)
+ --
+ -- Get/Set_Designator (Field4)
+ --
+ -- Get/Set_Chain (Field5)
+
+ -- N_Property (X2)
+ -- Get/Set_Name (Field1)
+ --
+ -- Get/Set_Value (Field2)
+ --
+ -- Get/Set_Owner (Field3)
+ --
+ -- Get/Set_Unit (Field4)
+ --
+ -- Get/Set_Chain (Field5)
+
+ -- N_Userdata (X2)
+ -- Get/Set_Name (Field1)
+ --
+ -- Get/Set_CDR (Field2)
+ --
+ -- Get/Set_Chain (Field5)
+
+ -- N_Instance (X2)
+ -- Get/Set_Name (Field1)
+ --
+ -- Get/Set_Instance_Ref (Field2)
+ --
+ -- Get/Set_Port_Instances_Chain (Field4)
+ --
+ -- Get/Set_Properties_Chain (Field3)
+ --
+ -- Get/Set_Chain (Field5)
+
+ -- N_Net (X2)
+ -- Get/Set_Name (Field1)
+ --
+ -- Get/Set_Joined_Chain (Field2)
+ --
+ -- Get/Set_Properties_Chain (Field3)
+ --
+ -- Get/Set_Chain (Field5)
+
+ -- N_Design (X2)
+ -- Get/Set_Name (Field1)
+ --
+ -- Get/Set_Cell_Ref (Field2)
+ --
+ -- Get/Set_Properties_Chain (Field3)
+
+ -- N_Port_Ref (X2)
+ -- Get/Set_Port (Field1)
+ --
+ -- Get/Set_Instance_Ref (Field2)
+ --
+ -- Get/Set_Chain (Field5)
+
+ -- N_View_Ref (X1)
+ --
+ -- Get/Set_Name (Field1)
+ --
+ -- Get/Set_Cell_Ref (Field2)
+
+ -- N_Cell_Ref (X1)
+ -- Get/Set_Name (Field1)
+ --
+ -- Get/Set_Library_Ref (Field2)
+
+ -- N_Port_Instance (X2)
+ -- Get/Set_Name (Field1)
+ --
+ -- Get/Set_Properties_Chain (Field3)
+ --
+ -- Get/Set_Chain (Field5)
+
+ -- N_Member (X1)
+ -- Get/Set_Name (Field1)
+ --
+ -- Get/Set_Index (Field2)
+
+ -- N_Array (X1)
+ -- Get/Set_Name (Field1)
+ --
+ -- Get/Set_Array_Length (Field2)
+
+ -- N_Rename (X1)
+ -- Get/Set_Name (Field1)
+ --
+ -- Get/Set_String (Field2)
+
+ -- N_Boolean (X1)
+ -- Get/Set_Boolean (Flag1)
+
+ -- End of Nkind.
+
+ -- General methods.
+
+ function Create_Node (Kind : Nkind) return Node;
+ procedure Free_Node (N : Node);
+
+ -- Note: use Field0
+ function Get_Location (N : Node) return Location_Type;
+ procedure Set_Location (N : Node; Loc : Location_Type);
+
+ function Get_Kind (N : Node) return Nkind;
+
+ -- Field: Field1
+ function Get_CAR (N : Node) return Node;
+ procedure Set_CAR (N : Node; V : Node);
+
+ -- Field: Field2
+ function Get_CDR (N : Node) return Node;
+ procedure Set_CDR (N : Node; V : Node);
+
+ -- Field: Field1 (pos)
+ function Get_Symbol (N : Node) return Name_Id;
+ procedure Set_Symbol (N : Node; Id : Name_Id);
+
+ -- Field: Field1 (pos)
+ function Get_Keyword (N : Node) return Name_Id;
+ procedure Set_Keyword (N : Node; Id : Name_Id);
+
+ -- Field: Field1 (uc)
+ function Get_Number (N : Node) return Int32;
+ procedure Set_Number (N : Node; Val : Int32);
+
+ -- Field: Field1 (pos)
+ function Get_String_Id (N : Node) return String8_Id;
+ procedure Set_String_Id (N : Node; Id : String8_Id);
+
+ -- Field: Field2 (uc)
+ function Get_String_Len (N : Node) return Uns32;
+ procedure Set_String_Len (N : Node; Bn : Uns32);
+
+
+ -- Field: Field1
+ function Get_Name (N : Node) return Node;
+ procedure Set_Name (N : Node; Name : Node);
+
+ -- Field: Field2 (uc)
+ function Get_Edif_Level (N : Node) return Int32;
+ procedure Set_Edif_Level (N : Node; Level : Int32);
+
+ -- Major*100 + Minor*10 + Release
+ -- Field: Field3 (uc)
+ function Get_Edif_Version (N : Node) return Int32;
+ procedure Set_Edif_Version (N : Node; Version : Int32);
+
+ -- Field: Field4
+ function Get_Keyword_Map (N : Node) return Node;
+ procedure Set_Keyword_Map (N : Node; Map : Node);
+
+ -- Field: Field5
+ function Get_Status (N : Node) return Node;
+ procedure Set_Status (N : Node; Status : Node);
+
+ -- Field: Field5 Chain_Next
+ function Get_Chain (N : Node) return Node;
+ procedure Set_Chain (N : Node; Chain : Node);
+
+ -- Field: Field6 Chain
+ function Get_External_Chain (N : Node) return Node;
+ procedure Set_External_Chain (N : Node; Chain : Node);
+
+ -- Field: Field7 Chain
+ function Get_Library_Chain (N : Node) return Node;
+ procedure Set_Library_Chain (N : Node; Chain : Node);
+
+ -- Field: Field4 Chain
+ function Get_Cells_Chain (N : Node) return Node;
+ procedure Set_Cells_Chain (N : Node; Chain : Node);
+
+ -- Field: Field2 Chain
+ function Get_Ports_Chain (N : Node) return Node;
+ procedure Set_Ports_Chain (N : Node; Chain : Node);
+
+ -- Field: Field4 Chain
+ function Get_Contents_Chain (N : Node) return Node;
+ procedure Set_Contents_Chain (N : Node; Chain : Node);
+
+ -- Field: Field3 Chain
+ function Get_Properties_Chain (N : Node) return Node;
+ procedure Set_Properties_Chain (N : Node; Chain : Node);
+
+ -- Field: Field4 Chain
+ function Get_Port_Instances_Chain (N : Node) return Node;
+ procedure Set_Port_Instances_Chain (N : Node; Chain : Node);
+
+ -- Field: Field2 Chain
+ function Get_Joined_Chain (N : Node) return Node;
+ procedure Set_Joined_Chain (N : Node; Chain : Node);
+
+ -- Field: Field8
+ function Get_Design (N : Node) return Node;
+ procedure Set_Design (N : Node; Design : Node);
+
+ -- Field: Field4
+ function Get_Designator (N : Node) return Node;
+ procedure Set_Designator (N : Node; Id : Node);
+
+ -- Field: Field3
+ function Get_Technology (N : Node) return Node;
+ procedure Set_Technology (N : Node; Design : Node);
+
+ -- Field: Field2 (pos)
+ function Get_Cell_Type (N : Node) return Name_Id;
+ procedure Set_Cell_Type (N : Node; Ctype : Name_Id);
+
+ -- Field: Field2 (pos)
+ function Get_View_Type (N : Node) return Name_Id;
+ procedure Set_View_Type (N : Node; Vtype : Name_Id);
+
+ -- Field: Field6
+ function Get_Interface (N : Node) return Node;
+ procedure Set_Interface (N : Node; Inter : Node);
+
+ -- Field: Field1 (pos)
+ function Get_View_Ref (N : Node) return Name_Id;
+ procedure Set_View_Ref (N : Node; Ref : Name_Id);
+
+ -- Field: Field2
+ function Get_Cell_Ref (N : Node) return Node;
+ procedure Set_Cell_Ref (N : Node; Ref : Node);
+
+ -- Field: Field2
+ function Get_Library_Ref (N : Node) return Node;
+ procedure Set_Library_Ref (N : Node; Ref : Node);
+
+ -- Field: Field4
+ function Get_View (N : Node) return Node;
+ procedure Set_View (N : Node; View : Node);
+
+ -- Field: State1 (uc)
+ function Get_Direction (N : Node) return Direction_Type;
+ procedure Set_Direction (N : Node; Dir : Direction_Type);
+
+ -- Field: Flag1
+ function Get_Boolean (N : Node) return Boolean;
+ procedure Set_Boolean (N : Node; Val : Boolean);
+
+ -- Field: Field2
+ function Get_Value (N : Node) return Node;
+ procedure Set_Value (N : Node; Val : Node);
+
+ -- Field: Field3
+ function Get_Owner (N : Node) return Node;
+ procedure Set_Owner (N : Node; Owner : Node);
+
+ -- Field: Field2
+ function Get_Instance_Ref (N : Node) return Node;
+ procedure Set_Instance_Ref (N : Node; Ref : Node);
+
+ -- Field: Field1
+ function Get_Port (N : Node) return Node;
+ procedure Set_Port (N : Node; Port : Node);
+
+ -- Field: Field2 (uc)
+ function Get_Index (N : Node) return Int32;
+ procedure Set_Index (N : Node; Idx : Int32);
+
+ -- Field: Field2 (uc)
+ function Get_Array_Length (N : Node) return Int32;
+ procedure Set_Array_Length (N : Node; Len : Int32);
+
+ -- Field: Field4 (pos)
+ function Get_Unit (N : Node) return Name_Id;
+ procedure Set_Unit (N : Node; Unit : Name_Id);
+
+ -- Field: Field2
+ function Get_String (N : Node) return Node;
+ procedure Set_String (N : Node; Str : Node);
+
+end Edif.Nodes;