----------------------------------------------------- --------------------------- -- -- -- OCARINA COMPONENTS -- -- -- -- O C A R I N A . P N . N O D E S -- -- -- -- S p e c -- -- -- -- Copyright (C) 2007, GET-Telecom Paris. -- -- -- -- Ocarina 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 2, or (at your option) any -- -- later version. Ocarina is distributed in the hope that it will be -- -- useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -- -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General -- -- Public License for more details. You should have received a copy of the -- -- GNU General Public License distributed with Ocarina; see file COPYING. -- -- If not, write to the Free Software Foundation, 51 Franklin Street, Fifth -- -- Floor, Boston, MA 02111-1301, USA. -- -- -- -- As a special exception, if other files instantiate generics from this -- -- unit, or you link this unit with other files to produce an executable, -- -- this unit does not by itself cause the resulting executable to be -- -- covered by the GNU General Public License. This exception does not -- -- however invalidate any other reasons why the executable file might be -- -- covered by the GNU Public License. -- -- -- -- Ocarina is maintained by the Ocarina team -- -- (ocarina-users@listes.enst.fr) -- -- -- ------------------------------------------------------------------------------ pragma Style_Checks ("NM32766"); -- This file has been generated automatically by `mknodes'. Do not -- hand modify this file since your changes will be overridden. with GNAT.Table; pragma Warnings (Off); with Locations; use Locations; with Types; use Types; pragma Warnings (On); package Ocarina.PN.Nodes is type Node_Kind is ( K_Node_Id, K_Indirection, K_List_Id, K_Identifier, K_Pn_Definition, K_Scoped_Name, K_Pn_Scope_Definition, K_Position, K_Color_Variable, K_Color_Declaration, K_Control_Color_Declaration, K_Data_Color_Declaration, K_Enumeration_Class_Declaration, K_Range_Class_Declaration, K_Domain_Declaration, K_Variables_Declaration, K_Symbolic_Value, K_Constant_Token, K_Token_Value, K_Variable_Token, K_Guard, K_PN_Marking, K_Place_Declaration, K_Transition_Declaration, K_Connect_Statement, K_Place_Fusion, K_Transition_Fusion, K_Port, K_Include_Call, K_Container, K_Functionnal_Entity, K_Thread_Box, K_Connection, K_Root_Node, K_Subprogram_Declaration); -- -- Node_Id -- -- Next_Node : Node_Id -- -- -- Indirection -- -- Next_Node : Node_Id -- Item : Node_Id -- procedure W_Indirection (N : Node_Id); -- -- List_Id -- -- First_Node : Node_Id -- Last_Node : Node_Id -- -- -- Identifier -- -- Next_Node : Node_Id -- Name : Name_Id -- Ocarina_Node : Node_Id -- Corresponding_Entity : Node_Id -- procedure W_Identifier (N : Node_Id); -- -- Pn_Definition -- -- Next_Node : Node_Id -- Identifier : Node_Id -- procedure W_Pn_Definition (N : Node_Id); -- -- Scoped_Name -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Parent_Scoped_Name : Node_Id -- Reference : Node_Id -- procedure W_Scoped_Name (N : Node_Id); -- -- Pn_Scope_Definition -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- procedure W_Pn_Scope_Definition (N : Node_Id); -- -- Position -- -- Next_Node : Node_Id -- X_Value : Value_Id -- Y_Value : Value_Id -- procedure W_Position (N : Node_Id); -- -- Color_Variable -- -- Next_Node : Node_Id -- Value : Value_Id -- procedure W_Color_Variable (N : Node_Id); -- -- Color_Declaration -- -- Next_Node : Node_Id -- Identifier : Node_Id -- procedure W_Color_Declaration (N : Node_Id); -- -- Control_Color_Declaration -- -- Next_Node : Node_Id -- Identifier : Node_Id -- First_Value : Value_Id -- Last_Value : Value_Id -- procedure W_Control_Color_Declaration (N : Node_Id); -- -- Data_Color_Declaration -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Symbolic_Values : List_Id -- Default_Valid_Value : Value_Id -- Default_Invalid_Value : Value_Id -- procedure W_Data_Color_Declaration (N : Node_Id); -- -- Enumeration_Class_Declaration -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Symbolic_Values : List_Id -- procedure W_Enumeration_Class_Declaration (N : Node_Id); -- -- Range_Class_Declaration -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Lower_Value : Value_Id -- Higher_Value : Value_Id -- procedure W_Range_Class_Declaration (N : Node_Id); -- -- Domain_Declaration -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Classes : List_Id -- procedure W_Domain_Declaration (N : Node_Id); -- -- Variables_Declaration -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Variables : List_Id -- procedure W_Variables_Declaration (N : Node_Id); -- -- Symbolic_Value -- -- Next_Node : Node_Id -- Symbol_Value : Value_Id -- procedure W_Symbolic_Value (N : Node_Id); -- -- Constant_Token -- -- Next_Node : Node_Id -- Value : Value_Id -- Color_Variable : Node_Id -- Number : Value_Id -- procedure W_Constant_Token (N : Node_Id); -- -- Token_Value -- -- Next_Node : Node_Id -- Constant_Token : List_Id -- procedure W_Token_Value (N : Node_Id); -- -- Variable_Token -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Class : Node_Id -- procedure W_Variable_Token (N : Node_Id); -- -- Guard -- -- Next_Node : Node_Id -- Variable : Value_Id -- Value : Value_Id -- Operator : Value_Id -- procedure W_Guard (N : Node_Id); -- -- PN_Marking -- -- Next_Node : Node_Id -- Tokens : List_Id -- Tuple : Boolean -- procedure W_PN_Marking (N : Node_Id); -- -- Place_Declaration -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Tokens : List_Id -- Color : Node_Id -- Marking : Node_Id -- Position : Node_Id -- procedure W_Place_Declaration (N : Node_Id); -- -- Transition_Declaration -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Guards : List_Id -- Position : Node_Id -- procedure W_Transition_Declaration (N : Node_Id); -- -- Connect_Statement -- -- Next_Node : Node_Id -- First_Reference : Node_Id -- Second_Reference : Node_Id -- Marking : Node_Id -- procedure W_Connect_Statement (N : Node_Id); -- -- Place_Fusion -- -- Next_Node : Node_Id -- First_Reference : Node_Id -- Second_Reference : Node_Id -- New_Scoped_Name : Node_Id -- procedure W_Place_Fusion (N : Node_Id); -- -- Transition_Fusion -- -- Next_Node : Node_Id -- First_Reference : Node_Id -- Second_Reference : Node_Id -- New_Scoped_Name : Node_Id -- procedure W_Transition_Fusion (N : Node_Id); -- -- Port -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Tokens : List_Id -- Color : Node_Id -- Marking : Node_Id -- Position : Node_Id -- Is_Event_Port : Boolean -- Pop_Transition : Node_Id -- Push_Transition : Node_Id -- Corresponding_Feature : Node_Id -- Parent_Box : Node_Id -- Refered_Nodes : List_Id -- Thread_Color : Value_Id -- Thread_Reference : Node_Id -- procedure W_Port (N : Node_Id); -- -- Include_Call -- -- Next_Node : Node_Id -- Namespace_Scoped_Name : Node_Id -- Subprogram_Scoped_Name : Node_Id -- procedure W_Include_Call (N : Node_Id); -- -- Container -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Include_Call : Node_Id -- Position : Node_Id -- Places : List_Id -- Arcs : List_Id -- Connections : List_Id -- Place_Fusions : List_Id -- Arc_Fusions : List_Id -- Subnets : List_Id -- procedure W_Container (N : Node_Id); -- -- Functionnal_Entity -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Include_Call : Node_Id -- Position : Node_Id -- Places : List_Id -- Arcs : List_Id -- Connections : List_Id -- Place_Fusions : List_Id -- Arc_Fusions : List_Id -- Subnets : List_Id -- Begin_Node : Node_Id -- End_Node : Node_Id -- procedure W_Functionnal_Entity (N : Node_Id); -- -- Thread_Box -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Include_Call : Node_Id -- Position : Node_Id -- Places : List_Id -- Arcs : List_Id -- Connections : List_Id -- Place_Fusions : List_Id -- Arc_Fusions : List_Id -- Subnets : List_Id -- Begin_Node : Node_Id -- End_Node : Node_Id -- Reset_Transition : Node_Id -- Body_Transition : Node_Id -- Ack_Receiver_Transition : Node_Id -- Ack_Receiver_Link : Node_Id -- Ack_Place : Node_Id -- Ack_Link : Node_Id -- Control_Color_Value : Value_Id -- Ports : List_Id -- procedure W_Thread_Box (N : Node_Id); -- -- Connection -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Connection_Transition : Node_Id -- Arcs : List_Id -- Source : Node_Id -- Destinations : List_Id -- Is_Event : Boolean -- procedure W_Connection (N : Node_Id); -- -- Root_Node -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Include_Call : Node_Id -- Position : Node_Id -- Places : List_Id -- Arcs : List_Id -- Connections : List_Id -- Place_Fusions : List_Id -- Arc_Fusions : List_Id -- Subnets : List_Id -- Number_Of_Control_Vars : Value_Id -- Number_Of_Value_Vars : Value_Id -- Number_Of_Threads : Value_Id -- Color_Declarations : List_Id -- Class_Control : Node_Id -- Class_Value : Node_Id -- Domain_Comm : Node_Id -- Control_Variables : Node_Id -- Value_Variables : Node_Id -- procedure W_Root_Node (N : Node_Id); -- -- Subprogram_Declaration -- -- Next_Node : Node_Id -- procedure W_Subprogram_Declaration (N : Node_Id); function Kind (N : Node_Id) return Node_Kind; procedure Set_Kind (N : Node_Id; V : Node_Kind); function Loc (N : Node_Id) return Location; procedure Set_Loc (N : Node_Id; V : Location); function Next_Node (N : Node_Id) return Node_Id; procedure Set_Next_Node (N : Node_Id; V : Node_Id); function Item (N : Node_Id) return Node_Id; procedure Set_Item (N : Node_Id; V : Node_Id); function First_Node (N : List_Id) return Node_Id; procedure Set_First_Node (N : List_Id; V : Node_Id); function Last_Node (N : List_Id) return Node_Id; procedure Set_Last_Node (N : List_Id; V : Node_Id); function Name (N : Node_Id) return Name_Id; procedure Set_Name (N : Node_Id; V : Name_Id); function Ocarina_Node (N : Node_Id) return Node_Id; procedure Set_Ocarina_Node (N : Node_Id; V : Node_Id); function Corresponding_Entity (N : Node_Id) return Node_Id; procedure Set_Corresponding_Entity (N : Node_Id; V : Node_Id); function Identifier (N : Node_Id) return Node_Id; procedure Set_Identifier (N : Node_Id; V : Node_Id); function Parent_Scoped_Name (N : Node_Id) return Node_Id; procedure Set_Parent_Scoped_Name (N : Node_Id; V : Node_Id); function Reference (N : Node_Id) return Node_Id; procedure Set_Reference (N : Node_Id; V : Node_Id); function Scoped_Name (N : Node_Id) return Node_Id; procedure Set_Scoped_Name (N : Node_Id; V : Node_Id); function X_Value (N : Node_Id) return Value_Id; procedure Set_X_Value (N : Node_Id; V : Value_Id); function Y_Value (N : Node_Id) return Value_Id; procedure Set_Y_Value (N : Node_Id; V : Value_Id); function Value (N : Node_Id) return Value_Id; procedure Set_Value (N : Node_Id; V : Value_Id); function First_Value (N : Node_Id) return Value_Id; procedure Set_First_Value (N : Node_Id; V : Value_Id); function Last_Value (N : Node_Id) return Value_Id; procedure Set_Last_Value (N : Node_Id; V : Value_Id); function Symbolic_Values (N : Node_Id) return List_Id; procedure Set_Symbolic_Values (N : Node_Id; V : List_Id); function Default_Valid_Value (N : Node_Id) return Value_Id; procedure Set_Default_Valid_Value (N : Node_Id; V : Value_Id); function Default_Invalid_Value (N : Node_Id) return Value_Id; procedure Set_Default_Invalid_Value (N : Node_Id; V : Value_Id); function Lower_Value (N : Node_Id) return Value_Id; procedure Set_Lower_Value (N : Node_Id; V : Value_Id); function Higher_Value (N : Node_Id) return Value_Id; procedure Set_Higher_Value (N : Node_Id; V : Value_Id); function Classes (N : Node_Id) return List_Id; procedure Set_Classes (N : Node_Id; V : List_Id); function Variables (N : Node_Id) return List_Id; procedure Set_Variables (N : Node_Id; V : List_Id); function Symbol_Value (N : Node_Id) return Value_Id; procedure Set_Symbol_Value (N : Node_Id; V : Value_Id); function Color_Variable (N : Node_Id) return Node_Id; procedure Set_Color_Variable (N : Node_Id; V : Node_Id); function Number (N : Node_Id) return Value_Id; procedure Set_Number (N : Node_Id; V : Value_Id); function Constant_Token (N : Node_Id) return List_Id; procedure Set_Constant_Token (N : Node_Id; V : List_Id); function Class (N : Node_Id) return Node_Id; procedure Set_Class (N : Node_Id; V : Node_Id); function Variable (N : Node_Id) return Value_Id; procedure Set_Variable (N : Node_Id; V : Value_Id); function Operator (N : Node_Id) return Value_Id; procedure Set_Operator (N : Node_Id; V : Value_Id); function Tokens (N : Node_Id) return List_Id; procedure Set_Tokens (N : Node_Id; V : List_Id); function Tuple (N : Node_Id) return Boolean; procedure Set_Tuple (N : Node_Id; V : Boolean); function Color (N : Node_Id) return Node_Id; procedure Set_Color (N : Node_Id; V : Node_Id); function Marking (N : Node_Id) return Node_Id; procedure Set_Marking (N : Node_Id; V : Node_Id); function Position (N : Node_Id) return Node_Id; procedure Set_Position (N : Node_Id; V : Node_Id); function Guards (N : Node_Id) return List_Id; procedure Set_Guards (N : Node_Id; V : List_Id); function First_Reference (N : Node_Id) return Node_Id; procedure Set_First_Reference (N : Node_Id; V : Node_Id); function Second_Reference (N : Node_Id) return Node_Id; procedure Set_Second_Reference (N : Node_Id; V : Node_Id); function New_Scoped_Name (N : Node_Id) return Node_Id; procedure Set_New_Scoped_Name (N : Node_Id; V : Node_Id); function Is_Event_Port (N : Node_Id) return Boolean; procedure Set_Is_Event_Port (N : Node_Id; V : Boolean); function Pop_Transition (N : Node_Id) return Node_Id; procedure Set_Pop_Transition (N : Node_Id; V : Node_Id); function Push_Transition (N : Node_Id) return Node_Id; procedure Set_Push_Transition (N : Node_Id; V : Node_Id); function Corresponding_Feature (N : Node_Id) return Node_Id; procedure Set_Corresponding_Feature (N : Node_Id; V : Node_Id); function Parent_Box (N : Node_Id) return Node_Id; procedure Set_Parent_Box (N : Node_Id; V : Node_Id); function Refered_Nodes (N : Node_Id) return List_Id; procedure Set_Refered_Nodes (N : Node_Id; V : List_Id); function Thread_Color (N : Node_Id) return Value_Id; procedure Set_Thread_Color (N : Node_Id; V : Value_Id); function Thread_Reference (N : Node_Id) return Node_Id; procedure Set_Thread_Reference (N : Node_Id; V : Node_Id); function Namespace_Scoped_Name (N : Node_Id) return Node_Id; procedure Set_Namespace_Scoped_Name (N : Node_Id; V : Node_Id); function Subprogram_Scoped_Name (N : Node_Id) return Node_Id; procedure Set_Subprogram_Scoped_Name (N : Node_Id; V : Node_Id); function Include_Call (N : Node_Id) return Node_Id; procedure Set_Include_Call (N : Node_Id; V : Node_Id); function Places (N : Node_Id) return List_Id; procedure Set_Places (N : Node_Id; V : List_Id); function Arcs (N : Node_Id) return List_Id; procedure Set_Arcs (N : Node_Id; V : List_Id); function Connections (N : Node_Id) return List_Id; procedure Set_Connections (N : Node_Id; V : List_Id); function Place_Fusions (N : Node_Id) return List_Id; procedure Set_Place_Fusions (N : Node_Id; V : List_Id); function Arc_Fusions (N : Node_Id) return List_Id; procedure Set_Arc_Fusions (N : Node_Id; V : List_Id); function Subnets (N : Node_Id) return List_Id; procedure Set_Subnets (N : Node_Id; V : List_Id); function Begin_Node (N : Node_Id) return Node_Id; procedure Set_Begin_Node (N : Node_Id; V : Node_Id); function End_Node (N : Node_Id) return Node_Id; procedure Set_End_Node (N : Node_Id; V : Node_Id); function Reset_Transition (N : Node_Id) return Node_Id; procedure Set_Reset_Transition (N : Node_Id; V : Node_Id); function Body_Transition (N : Node_Id) return Node_Id; procedure Set_Body_Transition (N : Node_Id; V : Node_Id); function Ack_Receiver_Transition (N : Node_Id) return Node_Id; procedure Set_Ack_Receiver_Transition (N : Node_Id; V : Node_Id); function Ack_Receiver_Link (N : Node_Id) return Node_Id; procedure Set_Ack_Receiver_Link (N : Node_Id; V : Node_Id); function Ack_Place (N : Node_Id) return Node_Id; procedure Set_Ack_Place (N : Node_Id; V : Node_Id); function Ack_Link (N : Node_Id) return Node_Id; procedure Set_Ack_Link (N : Node_Id; V : Node_Id); function Control_Color_Value (N : Node_Id) return Value_Id; procedure Set_Control_Color_Value (N : Node_Id; V : Value_Id); function Ports (N : Node_Id) return List_Id; procedure Set_Ports (N : Node_Id; V : List_Id); function Connection_Transition (N : Node_Id) return Node_Id; procedure Set_Connection_Transition (N : Node_Id; V : Node_Id); function Source (N : Node_Id) return Node_Id; procedure Set_Source (N : Node_Id; V : Node_Id); function Destinations (N : Node_Id) return List_Id; procedure Set_Destinations (N : Node_Id; V : List_Id); function Is_Event (N : Node_Id) return Boolean; procedure Set_Is_Event (N : Node_Id; V : Boolean); function Number_Of_Control_Vars (N : Node_Id) return Value_Id; procedure Set_Number_Of_Control_Vars (N : Node_Id; V : Value_Id); function Number_Of_Value_Vars (N : Node_Id) return Value_Id; procedure Set_Number_Of_Value_Vars (N : Node_Id; V : Value_Id); function Number_Of_Threads (N : Node_Id) return Value_Id; procedure Set_Number_Of_Threads (N : Node_Id; V : Value_Id); function Color_Declarations (N : Node_Id) return List_Id; procedure Set_Color_Declarations (N : Node_Id; V : List_Id); function Class_Control (N : Node_Id) return Node_Id; procedure Set_Class_Control (N : Node_Id; V : Node_Id); function Class_Value (N : Node_Id) return Node_Id; procedure Set_Class_Value (N : Node_Id; V : Node_Id); function Domain_Comm (N : Node_Id) return Node_Id; procedure Set_Domain_Comm (N : Node_Id; V : Node_Id); function Control_Variables (N : Node_Id) return Node_Id; procedure Set_Control_Variables (N : Node_Id; V : Node_Id); function Value_Variables (N : Node_Id) return Node_Id; procedure Set_Value_Variables (N : Node_Id; V : Node_Id); procedure W_Node (N : Node_Id); type Boolean_Array is array (1 .. 1) of Boolean; type Byte_Array is array (1 .. 0) of Byte; type Int_Array is array (1 .. 21) of Int; type Node_Entry is record Kind : Node_Kind; B : Boolean_Array; L : Int_Array; Loc : Location; end record; Default_Node : constant Node_Entry := (Node_Kind'First, (others => False), (others => 0), No_Location); package Entries is new GNAT.Table ( Node_Entry, Node_Id, No_Node + 1, 1000, 100); end Ocarina.PN.Nodes;