------------------------------------------------------------ -------------------- -- -- -- OCARINA COMPONENTS -- -- -- -- G A I A . P R O C E S S O R . 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.Processor.Nodes is type Node_Kind is ( K_Node_Id, K_List_Id, K_Identifier, K_Gaia_Definition, K_Scoped_Name, K_Property, K_Gaia_Scope_Definition, K_Package_Name_Element, K_Root_Node, K_Distributed_Application, K_Declaration_List, K_Namespace, K_Call_Sequence, K_Subprogram, K_Thread, K_Process, K_Parameter, K_Parameter_Connection, K_Thread_Reference, K_Port, K_Destination_Port, K_Variable_Definition, K_Subprogram_Call, K_Subprogram_Reference, K_Symbolic_Value, K_Type_Definition); -- -- Node_Id -- -- Next_Node : Node_Id -- -- -- List_Id -- -- First_Node : Node_Id -- Last_Node : Node_Id -- -- -- Identifier -- -- Next_Node : Node_Id -- Name : Name_Id -- Backend_Node : Node_Id -- Corresponding_Entity : Node_Id -- procedure W_Identifier (N : Node_Id); -- -- Gaia_Definition -- -- Next_Node : Node_Id -- Identifier : Node_Id -- procedure W_Gaia_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); -- -- Property -- -- Next_Node : Node_Id -- Entity : Name_Id -- Value : Node_Id -- procedure W_Property (N : Node_Id); -- -- Gaia_Scope_Definition -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Properties : List_Id -- procedure W_Gaia_Scope_Definition (N : Node_Id); -- -- Package_Name_Element -- -- Next_Node : Node_Id -- Identifier : Node_Id -- procedure W_Package_Name_Element (N : Node_Id); -- -- Root_Node -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Properties : List_Id -- Namespaces : List_Id -- Node_Location : Name_Id -- Port_Number : Value_Id -- Thread_Number : Int -- Priority_Managed : Boolean -- procedure W_Root_Node (N : Node_Id); -- -- Distributed_Application -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Root_Nodes : List_Id -- Protocol : Name_Id -- procedure W_Distributed_Application (N : Node_Id); -- -- Declaration_List -- -- First_Node : Node_Id -- Last_Node : Node_Id -- procedure W_Declaration_List (N : List_Id); -- -- Namespace -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Properties : List_Id -- Public_Declarations : List_Id -- Private_Declarations : List_Id -- procedure W_Namespace (N : Node_Id); -- -- Call_Sequence -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Properties : List_Id -- Statements : List_Id -- procedure W_Call_Sequence (N : Node_Id); -- -- Subprogram -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Properties : List_Id -- Variables : List_Id -- Parameters : List_Id -- Implemented_By : Name_Id -- Implementation_Language : Name_Id -- Call_Sequences : List_Id -- Connections : List_Id -- Owner_Data : Node_Id -- procedure W_Subprogram (N : Node_Id); -- -- Thread -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Properties : List_Id -- Ports : List_Id -- Call_Sequences : List_Id -- Connections : List_Id -- Variables : List_Id -- Period : Value_Id -- Priority : Value_Id -- Storage_Size : Value_Id -- Access_Provided_By : Node_Id -- Unique : Boolean -- Sources_Number : Int -- procedure W_Thread (N : Node_Id); -- -- Process -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Properties : List_Id -- Variables : List_Id -- Threads : List_Id -- Ports : List_Id -- Connections : List_Id -- procedure W_Process (N : Node_Id); -- -- Parameter -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Properties : List_Id -- Is_In : Boolean -- Is_Out : Boolean -- Type_Spec : Node_Id -- procedure W_Parameter (N : Node_Id); -- -- Parameter_Connection -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Properties : List_Id -- Source : Node_Id -- Simple_Source : Name_Id -- Destination : Node_Id -- Simple_Destination : Name_Id -- Source_Subprogram_Call : Node_Id -- Destination_Subprogram_Ca: Node_Id -- procedure W_Parameter_Connection (N : Node_Id); -- -- Thread_Reference -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Corresponding_Thread : Node_Id -- procedure W_Thread_Reference (N : Node_Id); -- -- Port -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Properties : List_Id -- Fifo_Size : Value_Id -- Trigger : Boolean -- Is_In : Boolean -- Is_Out : Boolean -- Type_Spec : Node_Id -- Destinations : List_Id -- procedure W_Port (N : Node_Id); -- -- Destination_Port -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Frontend_Node : Node_Id -- Thread_Location : Name_Id -- Thread_Name : Name_Id -- Process_Name : Name_Id -- Port_Number : Value_Id -- procedure W_Destination_Port (N : Node_Id); -- -- Variable_Definition -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Properties : List_Id -- Type_Spec : Node_Id -- Access_Provided_By : Node_Id -- procedure W_Variable_Definition (N : Node_Id); -- -- Subprogram_Call -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Properties : List_Id -- Call_Name : Name_Id -- Parameters : List_Id -- Corresponding_Subprogram : Node_Id -- Access_Provided_By : Node_Id -- procedure W_Subprogram_Call (N : Node_Id); -- -- Subprogram_Reference -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Corresponding_Subprogram : Node_Id -- procedure W_Subprogram_Reference (N : Node_Id); -- -- Symbolic_Value -- -- Next_Node : Node_Id -- Value_Name : Value_Id -- procedure W_Symbolic_Value (N : Node_Id); -- -- Type_Definition -- -- Next_Node : Node_Id -- Identifier : Node_Id -- Scoped_Name : Node_Id -- Properties : List_Id -- Frontend_Node : Node_Id -- Subtypes : List_Id -- Predefined_Simple_Type : Byte -- Maximal_Length : Value_Id -- Symbolic_Values : List_Id -- Subprograms : List_Id -- Access_Protocol : Name_Id -- Updating_Policy : Name_Id -- procedure W_Type_Definition (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 Backend_Node (N : Node_Id) return Node_Id; procedure Set_Backend_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 Entity (N : Node_Id) return Name_Id; procedure Set_Entity (N : Node_Id; V : Name_Id); function Value (N : Node_Id) return Node_Id; procedure Set_Value (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 Properties (N : Node_Id) return List_Id; procedure Set_Properties (N : Node_Id; V : List_Id); function Namespaces (N : Node_Id) return List_Id; procedure Set_Namespaces (N : Node_Id; V : List_Id); function Node_Location (N : Node_Id) return Name_Id; procedure Set_Node_Location (N : Node_Id; V : Name_Id); function Port_Number (N : Node_Id) return Value_Id; procedure Set_Port_Number (N : Node_Id; V : Value_Id); function Thread_Number (N : Node_Id) return Int; procedure Set_Thread_Number (N : Node_Id; V : Int); function Priority_Managed (N : Node_Id) return Boolean; procedure Set_Priority_Managed (N : Node_Id; V : Boolean); function Root_Nodes (N : Node_Id) return List_Id; procedure Set_Root_Nodes (N : Node_Id; V : List_Id); function Protocol (N : Node_Id) return Name_Id; procedure Set_Protocol (N : Node_Id; V : Name_Id); function Public_Declarations (N : Node_Id) return List_Id; procedure Set_Public_Declarations (N : Node_Id; V : List_Id); function Private_Declarations (N : Node_Id) return List_Id; procedure Set_Private_Declarations (N : Node_Id; V : List_Id); function Statements (N : Node_Id) return List_Id; procedure Set_Statements (N : Node_Id; V : List_Id); function Variables (N : Node_Id) return List_Id; procedure Set_Variables (N : Node_Id; V : List_Id); function Parameters (N : Node_Id) return List_Id; procedure Set_Parameters (N : Node_Id; V : List_Id); function Implemented_By (N : Node_Id) return Name_Id; procedure Set_Implemented_By (N : Node_Id; V : Name_Id); function Implementation_Language (N : Node_Id) return Name_Id; procedure Set_Implementation_Language (N : Node_Id; V : Name_Id); function Call_Sequences (N : Node_Id) return List_Id; procedure Set_Call_Sequences (N : Node_Id; V : List_Id); function Connections (N : Node_Id) return List_Id; procedure Set_Connections (N : Node_Id; V : List_Id); function Owner_Data (N : Node_Id) return Node_Id; procedure Set_Owner_Data (N : Node_Id; V : Node_Id); function Ports (N : Node_Id) return List_Id; procedure Set_Ports (N : Node_Id; V : List_Id); function Period (N : Node_Id) return Value_Id; procedure Set_Period (N : Node_Id; V : Value_Id); function Priority (N : Node_Id) return Value_Id; procedure Set_Priority (N : Node_Id; V : Value_Id); function Storage_Size (N : Node_Id) return Value_Id; procedure Set_Storage_Size (N : Node_Id; V : Value_Id); function Access_Provided_By (N : Node_Id) return Node_Id; procedure Set_Access_Provided_By (N : Node_Id; V : Node_Id); function Unique (N : Node_Id) return Boolean; procedure Set_Unique (N : Node_Id; V : Boolean); function Sources_Number (N : Node_Id) return Int; procedure Set_Sources_Number (N : Node_Id; V : Int); function Threads (N : Node_Id) return List_Id; procedure Set_Threads (N : Node_Id; V : List_Id); function Is_In (N : Node_Id) return Boolean; procedure Set_Is_In (N : Node_Id; V : Boolean); function Is_Out (N : Node_Id) return Boolean; procedure Set_Is_Out (N : Node_Id; V : Boolean); function Type_Spec (N : Node_Id) return Node_Id; procedure Set_Type_Spec (N : Node_Id; V : Node_Id); function Source (N : Node_Id) return Node_Id; procedure Set_Source (N : Node_Id; V : Node_Id); function Simple_Source (N : Node_Id) return Name_Id; procedure Set_Simple_Source (N : Node_Id; V : Name_Id); function Destination (N : Node_Id) return Node_Id; procedure Set_Destination (N : Node_Id; V : Node_Id); function Simple_Destination (N : Node_Id) return Name_Id; procedure Set_Simple_Destination (N : Node_Id; V : Name_Id); function Source_Subprogram_Call (N : Node_Id) return Node_Id; procedure Set_Source_Subprogram_Call (N : Node_Id; V : Node_Id); function Destination_Subprogram_Call (N : Node_Id) return Node_Id; procedure Set_Destination_Subprogram_Call (N : Node_Id; V : Node_Id); function Corresponding_Thread (N : Node_Id) return Node_Id; procedure Set_Corresponding_Thread (N : Node_Id; V : Node_Id); function Fifo_Size (N : Node_Id) return Value_Id; procedure Set_Fifo_Size (N : Node_Id; V : Value_Id); function Trigger (N : Node_Id) return Boolean; procedure Set_Trigger (N : Node_Id; V : Boolean); function Destinations (N : Node_Id) return List_Id; procedure Set_Destinations (N : Node_Id; V : List_Id); function Frontend_Node (N : Node_Id) return Node_Id; procedure Set_Frontend_Node (N : Node_Id; V : Node_Id); function Thread_Location (N : Node_Id) return Name_Id; procedure Set_Thread_Location (N : Node_Id; V : Name_Id); function Thread_Name (N : Node_Id) return Name_Id; procedure Set_Thread_Name (N : Node_Id; V : Name_Id); function Process_Name (N : Node_Id) return Name_Id; procedure Set_Process_Name (N : Node_Id; V : Name_Id); function Call_Name (N : Node_Id) return Name_Id; procedure Set_Call_Name (N : Node_Id; V : Name_Id); function Corresponding_Subprogram (N : Node_Id) return Node_Id; procedure Set_Corresponding_Subprogram (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 Subtypes (N : Node_Id) return List_Id; procedure Set_Subtypes (N : Node_Id; V : List_Id); function Predefined_Simple_Type (N : Node_Id) return Byte; procedure Set_Predefined_Simple_Type (N : Node_Id; V : Byte); function Maximal_Length (N : Node_Id) return Value_Id; procedure Set_Maximal_Length (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 Subprograms (N : Node_Id) return List_Id; procedure Set_Subprograms (N : Node_Id; V : List_Id); function Access_Protocol (N : Node_Id) return Name_Id; procedure Set_Access_Protocol (N : Node_Id; V : Name_Id); function Updating_Policy (N : Node_Id) return Name_Id; procedure Set_Updating_Policy (N : Node_Id; V : Name_Id); procedure W_Node (N : Node_Id); type Boolean_Array is array (1 .. 3) of Boolean; type Byte_Array is array (1 .. 1) of Byte; type Int_Array is array (1 .. 14) of Int; type Node_Entry is record Kind : Node_Kind; B : Boolean_Array; O : Byte_Array; L : Int_Array; Loc : Location; end record; Default_Node : constant Node_Entry := (Node_Kind'First, (others => False), (others => 0), (others => 0), No_Location); package Entries is new GNAT.Table ( Node_Entry, Node_Id, No_Node + 1, 1000, 100); end Gaia.Processor.Nodes;