with Ada.Strings.Unbounded, Ada.Containers.Vectors; use type Ada.Strings.Unbounded.Unbounded_String; generic Delimiter : in Character := ','; Quote : in Character := '"'; Escape : in Character := '\'; package CSV is package String_Vectors is new Ada.Containers.Vectors (Index_Type => Positive, Element_Type => Ada.Strings.Unbounded.Unbounded_String); subtype CSV_Record is String_Vectors.Vector; function Parse_Line (Input : in String) return CSV_Record; function Unparse_Record (Input : in CSV_Record) return String; end CSV;