hcl/lib2/h3-trees.ads

55 lines
1.0 KiB
Ada

with Ada.Finalization;
package H3.Trees is
--package A is new H3.Arrays(XXXX, 0);
type Node_Code is (
NODE_ASSIGN,
NODE_CALL,
NODE_CLASS,
NODE_IF,
NODE_FUN,
NODE_VOID,
NODE_WHILE
);
type Node;
type Node_Pointer is access Node;
type Node(Code: Node_Code := NODE_VOID) is record
-- Loc: location.
Next: Node_Pointer;
case Code is
when NODE_ASSIGN =>
null;
when NODE_CALL =>
null;
when NODE_CLASS =>
null;
when NODE_IF =>
null;
when NODE_FUN =>
null;
when NODE_VOID =>
null;
when NODE_WHILE =>
null;
end case;
end record;
-- parse tree
type Tree is new Ada.Finalization.Limited_Controlled with record
--Next_Node: System_Index := System_Index'First;
--Toplevel_Node := Node;
Top: Node_Pointer := null;
end record;
-- ------------------------------------------------------------------
procedure New_Node (Tr: in out Tree);
overriding procedure Initialize (Tr: in out Tree);
overriding procedure Finalize (Tr: in out Tree);
end H3.Trees;