diff options
Diffstat (limited to 'src/kompsos-advanced_reify.ads')
| -rw-r--r-- | src/kompsos-advanced_reify.ads | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/kompsos-advanced_reify.ads b/src/kompsos-advanced_reify.ads new file mode 100644 index 0000000..ecda1c9 --- /dev/null +++ b/src/kompsos-advanced_reify.ads @@ -0,0 +1,69 @@ + + +-- Programmed by Jedidiah Barber +-- Licensed under the Sunset License v1.0 + +-- See license.txt for further details + + +with + + Ada.Containers.Multiway_Trees; + + +generic + type Element_Array is array (Positive range <>) of Element_Type; + + Null_Element : Element_Type; + + with function Variable_Convert + (Item : in Term) + return Element_Type is <>; + + -- Element_Trees must be passed in rather than instantiated inside the generic + -- due to an issue with implementation-defined Disable_Controlled aspect in GNAT. + with package Element_Trees is new Ada.Containers.Multiway_Trees + (Element_Type => Element_Type, + "=" => "="); +package Kompsos.Advanced_Reify is + + + -- Term->Array Conversion -- + + function Flatten + (Item : in Term) + return Element_Array; + + + -- Term->Tree Conversion -- + + function To_Tree + (Item : in Term) + return Element_Trees.Tree; + + + -- Tree Reification -- + + function Treeify + (Item : in Term; + Subst : in State) + return Element_Trees.Tree; + + function Treeify_First + (Subst : in State) + return Element_Trees.Tree; + + function Treeify_First + (Subst : in State; + Name : in String) + return Element_Trees.Tree; + + function Treeify_First + (Subst : in State; + Name : in Nametag) + return Element_Trees.Tree; + + +end Kompsos.Advanced_Reify; + + |
