with Ada.Containers.Vectors; with Ada.Containers.Indefinite_Hashed_Maps; with Ada.Strings.Hash; with Ada.Strings.Unbounded; use Ada.Strings.Unbounded; package Generator.Match_Pattern_Specific is use Ada.Containers; package List_String is new Vectors (Positive, Unbounded_String); function Equivalent_Key (Left, Right : String) return Boolean; function Equivalent_Value (Left, Right : List_String.Vector) return Boolean; package Mapping_Single_Map is new Indefinite_Hashed_Maps (Key_Type => String, Element_Type => List_String.Vector, Hash => Ada.Strings.Hash, Equivalent_Keys => Equivalent_Key, "=" => Equivalent_Value); procedure Append (Map : in out Mapping_Single_Map.Map; Key : String; Value : String); procedure Process_Node_Kinds; procedure Process_Type_Decl; procedure Process_Subp; procedure Generate_Match_Specific; procedure Main; end Generator.Match_Pattern_Specific;