From 6f15340717a5d2dccdcf8de0a03a161c5abeef70 Mon Sep 17 00:00:00 2001 From: Jed Barber Date: Sun, 27 Jan 2019 19:08:11 +1100 Subject: Iteration specifications added for Parse_Graphs --- packrat_parser_lib_notes.txt | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) (limited to 'packrat_parser_lib_notes.txt') diff --git a/packrat_parser_lib_notes.txt b/packrat_parser_lib_notes.txt index 333b999..2a8e0cc 100644 --- a/packrat_parser_lib_notes.txt +++ b/packrat_parser_lib_notes.txt @@ -315,9 +315,20 @@ Packrat.Interfaces ends up being necessary for parsing List of interfaces: +Node + - Leaf (constructor) + - Branch (constructor) + - Is_Leaf + - Is_Branch + - Label + - Elements + - Start + - Finish + Cursor - Is_Nothing - Depth + - Is_Node - Is_Root - Is_Branch - Is_Leaf @@ -341,8 +352,7 @@ Cursor Directed_Acyclic_Graph - Contains - - Leaf - - Branch + - Singleton (constructor) - Is_Empty - Is_Ambiguous - Node_Count @@ -363,20 +373,22 @@ Packrat.Graphs - can be replaced with a user-supplied type, assuming proper care is taken to avoid exponential issues List_of_datatypes: -Graph_Cursor - - (implements all of Interfaces.Cursor) -Parse_Graph - - (implements all of Interfaces.Directed_Acyclic_Graph) +Node (implements all of Interfaces.Node) +Node_Reference +Cursor (implements all of Interfaces.Cursor) +Iter_Cursor (wraps a Cursor, necessary for iteration) +Parse_Graph (implements all of Interfaces.Directed_Acyclic_Graph) +Choosing_Function (used in Iterate_Choice) List of funcs: Debug_String +Node_At + +Is_Valid_Node Iterate -Reverse_Iterate +Iterate_Subtree Iterate_Choice -Reverse_Iterate_Choice -Iterate_SUbtree -Iterate_Subtree_Choice -- cgit