ADDED src/natools-s_expressions-atom_ref_constructors.adb Index: src/natools-s_expressions-atom_ref_constructors.adb ================================================================== --- src/natools-s_expressions-atom_ref_constructors.adb +++ src/natools-s_expressions-atom_ref_constructors.adb @@ -0,0 +1,32 @@ +------------------------------------------------------------------------------ +-- Copyright (c) 2014, Natacha Porté -- +-- -- +-- Permission to use, copy, modify, and distribute this software for any -- +-- purpose with or without fee is hereby granted, provided that the above -- +-- copyright notice and this permission notice appear in all copies. -- +-- -- +-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -- +-- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -- +-- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -- +-- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -- +-- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -- +-- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -- +-- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -- +------------------------------------------------------------------------------ + +package body Natools.S_Expressions.Atom_Ref_Constructors is + + function Create (Data : in Atom) return Atom_Refs.Immutable_Reference is + function Create_Atom return Atom is (Data); + begin + return Atom_Refs.Create (Create_Atom'Access); + end Create; + + + function Create (Data : in Atom) return Atom_Refs.Reference is + function Create_Atom return Atom is (Data); + begin + return Atom_Refs.Create (Create_Atom'Access); + end Create; + +end Natools.S_Expressions.Atom_Ref_Constructors; ADDED src/natools-s_expressions-atom_ref_constructors.ads Index: src/natools-s_expressions-atom_ref_constructors.ads ================================================================== --- src/natools-s_expressions-atom_ref_constructors.ads +++ src/natools-s_expressions-atom_ref_constructors.ads @@ -0,0 +1,33 @@ +------------------------------------------------------------------------------ +-- Copyright (c) 2014, Natacha Porté -- +-- -- +-- Permission to use, copy, modify, and distribute this software for any -- +-- purpose with or without fee is hereby granted, provided that the above -- +-- copyright notice and this permission notice appear in all copies. -- +-- -- +-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -- +-- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -- +-- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -- +-- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -- +-- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -- +-- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -- +-- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -- +------------------------------------------------------------------------------ + +------------------------------------------------------------------------------ +-- Natools.S_Expressions.Atom_Ref_Create is a simple atom reference -- +-- reference constructors, to make expressions more readable. -- +-- Note that the atom is copied, so this might be unsuitable for large -- +-- atoms. -- +------------------------------------------------------------------------------ + +with Natools.S_Expressions.Atom_Refs; + +package Natools.S_Expressions.Atom_Ref_Constructors is + pragma Preelaborate; + + function Create (Data : in Atom) return Atom_Refs.Immutable_Reference; + + function Create (Data : in Atom) return Atom_Refs.Reference; + +end Natools.S_Expressions.Atom_Ref_Constructors;