From ada2593ebd6037cb78ce1ba795f283105d5cff26 Mon Sep 17 00:00:00 2001 From: Jed Barber Date: Sat, 26 Jan 2019 10:50:36 +1100 Subject: Interfaces for Cursors and Graphs added --- src/packrat-graphs.adb | 371 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 371 insertions(+) create mode 100644 src/packrat-graphs.adb (limited to 'src/packrat-graphs.adb') diff --git a/src/packrat-graphs.adb b/src/packrat-graphs.adb new file mode 100644 index 0000000..2cf74b3 --- /dev/null +++ b/src/packrat-graphs.adb @@ -0,0 +1,371 @@ + + +package body Packrat.Graphs is + + + function Is_Nothing + (Position : in Cursor) + return Boolean is + begin + return True; + end Is_Nothing; + + + + + + function Depth + (Position : in Cursor) + return Natural is + begin + return 0; + end Depth; + + + function Is_Root + (Position : in Cursor) + return Boolean is + begin + return False; + end Is_Root; + + + function Is_Branch + (Position : in Cursor) + return Boolean is + begin + return False; + end Is_Branch; + + + function Is_Leaf + (Position : in Cursor) + return Boolean is + begin + return False; + end Is_Leaf; + + + function Label + (Position : in Cursor) + return Label_Enum is + begin + return Label_Enum'First; + end Label; + + + function Elements + (Position : in Cursor) + return Element_Array + is + Empty : Element_Array (1 .. 0); + begin + return Empty; + end Elements; + + + + + + function Start + (Position : in Cursor) + return Positive is + begin + return 1; + end Start; + + + function Finish + (Position : in Cursor) + return Natural is + begin + return 0; + end Finish; + + + function Choices + (Position : in Cursor) + return Natural is + begin + return 0; + end Choices; + + + + + + function Parent + (Position : in Cursor) + return Cursor is + begin + return This : Cursor; + end Parent; + + + function Child_Count + (Position : in Cursor; + Choice : in Positive) + return Natural is + begin + return 0; + end Child_Count; + + + function Child_Count + (Position : in Cursor) + return Natural is + begin + return 0; + end Child_Count; + + + function All_Child_Count + (Position : in Cursor) + return Natural is + begin + return 0; + end All_Child_Count; + + + function First_Child + (Position : in Cursor; + Choice : in Positive) + return Cursor is + begin + return This : Cursor; + end First_Child; + + + function Last_Child + (Position : in Cursor; + Choice : in Positive) + return Cursor is + begin + return This : Cursor; + end Last_Child; + + + function First_Child + (Position : in Cursor) + return Cursor is + begin + return This : Cursor; + end First_Child; + + + function Last_Child + (Position : in Cursor) + return Cursor is + begin + return This : Cursor; + end Last_Child; + + + function Next_Sibling + (Position : in Cursor) + return Cursor is + begin + return This : Cursor; + end Next_Sibling; + + + function Prev_Sibling + (Position : in Cursor) + return Cursor is + begin + return This : Cursor; + end Prev_Sibling; + + + procedure Delete_Children + (Position : in out Cursor; + Choice : in Positive) is + begin + null; + end Delete_Children; + + + procedure Delete_Children + (Position : in out Cursor) is + begin + null; + end Delete_Children; + + + procedure Delete_All_Children + (Position : in out Cursor) is + begin + null; + end Delete_All_Children; + + + + + + function Equal_Subgraph + (Left, Right : in Cursor) + return Boolean is + begin + return False; + end Equal_Subgraph; + + + function Subgraph_Node_Count + (Position : in Cursor) + return Natural is + begin + return 0; + end Subgraph_Node_Count; + + + function Find_In_Subgraph + (Position : in Cursor; + Item : in Element_Array) + return Cursor is + begin + return This : Cursor; + end Find_In_Subgraph; + + + + + + function Contains + (Container : in Parse_Graph; + Position : in My_Interfaces.Cursor'Class) + return Boolean is + begin + return False; + end Contains; + + + + + function Leaf + (New_Item : in Element_Array; + Start : in Positive; + Finish : in Natural) + return Parse_Graph is + begin + return This : Parse_Graph; + end Leaf; + + + function Branch + (Label : in Label_Enum; + Start : in Positive; + Finish : in Natural) + return Parse_Graph is + begin + return This : Parse_Graph; + end Branch; + + + + + + function Is_Empty + (Container : in Parse_Graph) + return Boolean is + begin + return True; + end Is_Empty; + + + function Is_Ambiguous + (Container : in Parse_Graph) + return Boolean is + begin + return False; + end Is_Ambiguous; + + + function Node_Count + (Container : in Parse_Graph) + return Natural is + begin + return 0; + end Node_Count; + + + + + + function Root_Count + (Container : in Parse_Graph) + return Natural is + begin + return 0; + end Root_Count; + + + function Root + (Container : in Parse_Graph; + Index : in Positive) + return My_Interfaces.Cursor'Class is + begin + return This : Cursor; + end Root; + + + + + + procedure Append + (Container : in out Parse_Graph; + Addition : in Parse_Graph) is + begin + null; + end Append; + + + procedure Prepend + (Container : in out Parse_Graph; + Addition : in Parse_Graph) is + begin + null; + end Prepend; + + + procedure Attach_Choice + (Container : in out Parse_Graph; + Position : in My_Interfaces.Cursor'Class; + Addition : in Parse_Graph) is + begin + null; + end Attach_Choice; + + + + + + procedure Clear + (Container : in out Parse_Graph) is + begin + null; + end Clear; + + + procedure Delete_Position + (Container : in out Parse_Graph; + Position : in out My_Interfaces.Cursor'Class) is + begin + null; + end Delete_Position; + + + + + + function Find + (Container : in Parse_Graph; + Item : in Element_Array) + return My_Interfaces.Cursor'Class is + begin + return This : Cursor; + end Find; + + +end Packrat.Graphs; + + -- cgit