------------------------------------------------------------- ------------------- -- -- -- OCARINA COMPONENTS -- -- -- -- G A I 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 Gaia.Pn.Nodes is type node_kind is (k_node_id, k_list_id, k_identifier, k_pn_definition, k_scoped_name, k_encapsulate_list_node, k_pn_scope_definition, k_position, k_token, k_guard, k_place_declaration, k_transition_declaration, k_connect_statement, k_place_fusion, k_transition_fusion, k_loop_declaration, k_fifo_extremities, k_symbolic_value, k_color_variable, k_color_declaration, k_colored_token, k_include_call, k_container, k_fonctionnal_entity, k_thread_box, k_root_node, k_subprogram_declaration); -- -- Node_Id -- -- Next_Node : Node_Id -- -- -- List_Id -- -- First_Node : Node_Id -- Last_Node : Node_Id -- -- -- Identifier -- -- Next_Node : Node_Id -- Name : Name_Id -- Gaia_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); -- -- Encapsulate_List_Node -- -- Next_Node : Node_Id -- Refered_Node : Node_Id -- procedure W_Encapsulate_List_Node (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); -- -- Token -- -- Next_Node : Node_Id -- Value : Value_Id -- Color : Node_Id -- procedure W_Token (N : node_id); -- -- Guard -- -- Next_Node : Node_Id -- Color : Node_Id -- Variable : Node_Id -- Value : Value_Id -- Operator : Value_Id -- procedure W_Guard (N : node_id); -- -- Place_Declaration -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Tokens : List_Id -- Domains : List_Id -- Position : Node_Id -- procedure W_Place_Declaration (N : node_id); -- -- Transition_Declaration -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Guard : Node_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 -- Is_Link_Place_To_Transiti: Boolean -- Domains : List_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); -- -- Loop_Declaration -- -- Next_Node : Node_Id -- Iteration_Nb : Value_Id -- Place_Declarations : List_Id -- Transition_Declarations : List_Id -- Connection_to_Locals : List_Id -- Connection_to_Externs : List_Id -- Connection_Local : List_Id -- procedure W_Loop_Declaration (N : node_id); -- -- Fifo_Extremities -- -- Next_Node : Node_Id -- Pop_Transition : Node_Id -- Push_Transition : Node_Id -- Port_Reference : Node_Id -- Ack_Place : Node_Id -- Refered_Nodes : List_Id -- Thread_Color : Value_Id -- Thread_Reference : Node_Id -- procedure W_Fifo_Extremities (N : node_id); -- -- Symbolic_Value -- -- Next_Node : Node_Id -- Value_Name : Value_Id -- procedure W_Symbolic_Value (N : node_id); -- -- Color_Variable -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- procedure W_Color_Variable (N : node_id); -- -- Color_Declaration -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Color_Variable : Node_Id -- Symbolic_Values : List_Id -- procedure W_Color_Declaration (N : node_id); -- -- Colored_Token -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Color_Declaration : Node_Id -- Number : Value_Id -- procedure W_Colored_Token (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 -- Length : Value_Id -- Width : Value_Id -- Places : List_Id -- Transitions : List_Id -- Connections : List_Id -- Loop_Declarations : List_Id -- Places_Fusions : List_Id -- Transitions_Fusions : List_Id -- Sub_Components : List_Id -- procedure W_Container (N : node_id); -- -- Fonctionnal_Entity -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Include_Call : Node_Id -- Length : Value_Id -- Width : Value_Id -- Places : List_Id -- Transitions : List_Id -- Connections : List_Id -- Loop_Declarations : List_Id -- Places_Fusions : List_Id -- Transitions_Fusions : List_Id -- Sub_Components : List_Id -- Begin_Node : Node_Id -- End_Node : Node_Id -- procedure W_Fonctionnal_Entity (N : node_id); -- -- Thread_Box -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Include_Call : Node_Id -- Length : Value_Id -- Width : Value_Id -- Places : List_Id -- Transitions : List_Id -- Connections : List_Id -- Loop_Declarations : List_Id -- Places_Fusions : List_Id -- Transitions_Fusions : List_Id -- Sub_Components : List_Id -- Begin_Node : Node_Id -- End_Node : Node_Id -- Reset_Transition : Node_Id -- Ack_Receiver_Transition : Node_Id -- Ack_Receiver_Link : Node_Id -- Color_Value : Value_Id -- Fifos : List_Id -- procedure W_Thread_Box (N : node_id); -- -- Root_Node -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Include_Call : Node_Id -- Length : Value_Id -- Width : Value_Id -- Places : List_Id -- Transitions : List_Id -- Connections : List_Id -- Loop_Declarations : List_Id -- Places_Fusions : List_Id -- Transitions_Fusions : List_Id -- Sub_Components : List_Id -- Directory_Name : Name_Id -- File_Name : Name_Id -- Color_Declarations : List_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 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 Gaia_Node (N : node_id) return node_id; procedure Set_Gaia_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 Refered_Node (N : node_id) return node_id; procedure Set_Refered_Node (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 Color (N : node_id) return node_id; procedure Set_Color (N : node_id; V : node_id); function Variable (N : node_id) return node_id; procedure Set_Variable (N : node_id; V : node_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 Domains (N : node_id) return list_id; procedure Set_Domains (N : node_id; V : list_id); function Position (N : node_id) return node_id; procedure Set_Position (N : node_id; V : node_id); function Guard (N : node_id) return node_id; procedure Set_Guard (N : node_id; V : node_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 Is_Link_Place_To_Transition (N : node_id) return Boolean; procedure Set_Is_Link_Place_To_Transition (N : node_id; V : Boolean); function New_Scoped_Name (N : node_id) return node_id; procedure Set_New_Scoped_Name (N : node_id; V : node_id); function Iteration_Nb (N : node_id) return value_id; procedure Set_Iteration_Nb (N : node_id; V : value_id); function Place_Declarations (N : node_id) return list_id; procedure Set_Place_Declarations (N : node_id; V : list_id); function Transition_Declarations (N : node_id) return list_id; procedure Set_Transition_Declarations (N : node_id; V : list_id); function Connection_to_Locals (N : node_id) return list_id; procedure Set_Connection_to_Locals (N : node_id; V : list_id); function Connection_to_Externs (N : node_id) return list_id; procedure Set_Connection_to_Externs (N : node_id; V : list_id); function Connection_Local (N : node_id) return list_id; procedure Set_Connection_Local (N : node_id; V : list_id); 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 Port_Reference (N : node_id) return node_id; procedure Set_Port_Reference (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 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 Value_Name (N : node_id) return value_id; procedure Set_Value_Name (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 Symbolic_Values (N : node_id) return list_id; procedure Set_Symbolic_Values (N : node_id; V : list_id); function Color_Declaration (N : node_id) return node_id; procedure Set_Color_Declaration (N : node_id; V : node_id); function Number (N : node_id) return value_id; procedure Set_Number (N : node_id; V : value_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 Length (N : node_id) return value_id; procedure Set_Length (N : node_id; V : value_id); function Width (N : node_id) return value_id; procedure Set_Width (N : node_id; V : value_id); function Places (N : node_id) return list_id; procedure Set_Places (N : node_id; V : list_id); function Transitions (N : node_id) return list_id; procedure Set_Transitions (N : node_id; V : list_id); function Connections (N : node_id) return list_id; procedure Set_Connections (N : node_id; V : list_id); function Loop_Declarations (N : node_id) return list_id; procedure Set_Loop_Declarations (N : node_id; V : list_id); function Places_Fusions (N : node_id) return list_id; procedure Set_Places_Fusions (N : node_id; V : list_id); function Transitions_Fusions (N : node_id) return list_id; procedure Set_Transitions_Fusions (N : node_id; V : list_id); function Sub_Components (N : node_id) return list_id; procedure Set_Sub_Components (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 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 Color_Value (N : node_id) return value_id; procedure Set_Color_Value (N : node_id; V : value_id); function Fifos (N : node_id) return list_id; procedure Set_Fifos (N : node_id; V : list_id); function Directory_Name (N : node_id) return name_id; procedure Set_Directory_Name (N : node_id; V : name_id); function File_Name (N : node_id) return name_id; procedure Set_File_Name (N : node_id; V : name_id); function Color_Declarations (N : node_id) return list_id; procedure Set_Color_Declarations (N : node_id; V : list_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 .. 20) 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 Gaia.Pn.Nodes;