-- Meta description of nodes. -- Copyright (C) 2014 Tristan Gingold -- -- GHDL is free software; you can redistribute it and/or modify it under -- the terms of the GNU General Public License as published by the Free -- Software Foundation; either version 2, or (at your option) any later -- version. -- -- GHDL 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 -- along with GHDL; see the file COPYING. If not, write to the Free -- Software Foundation, 59 Temple Place - Suite 330, Boston, MA -- 02111-1307, USA. package body Vhdl.Nodes_Meta is Fields_Type : constant array (Fields_Enum) of Types_Enum := ( -- FIELDS_TYPE ); function Get_Field_Type (F : Fields_Enum) return Types_Enum is begin return Fields_Type (F); end Get_Field_Type; function Get_Field_Image (F : Fields_Enum) return String is begin case F is -- FIELD_IMAGE end case; end Get_Field_Image; function Get_Iir_Image (K : Iir_Kind) return String is begin case K is -- IIR_IMAGE end case; end Get_Iir_Image; function Get_Field_Attribute (F : Fields_Enum) return Field_Attribute is begin case F is -- FIELD_ATTRIBUTE end case; end Get_Field_Attribute; Fields_Of_Iir : constant Fields_Array := ( -- FIELDS_ARRAY ); Fields_Of_Iir_Last : constant array (Iir_Kind) of Fields_Index_Extended := ( -- FIELDS_ARRAY_POS ); function Get_Fields_First (K : Iir_Kind) return Fields_Index is begin if K = Iir_Kind'First then return Fields_Of_Iir'First; else return Fields_Of_Iir_Last (Iir_Kind'Pred (K)) + 1; end if; end Get_Fields_First; function Get_Fields_Last (K : Iir_Kind) return Fields_Index is begin return Fields_Of_Iir_Last (K); end Get_Fields_Last; function Get_Field_By_Index (Idx : Fields_Index) return Fields_Enum is begin return Fields_Of_Iir (Idx); end Get_Field_By_Index; function Get_Fields (K : Iir_Kind) return Fields_Array is First : constant Fields_Index := Get_Fields_First (K); Last : constant Fields_Index := Fields_Of_Iir_Last (K); begin return Fields_Of_Iir (First .. Last); end Get_Fields; -- FUNCS_BODY end Vhdl.Nodes_Meta;