diff options
author | Jed Barber <jjbarber@y7mail.com> | 2019-01-26 10:50:36 +1100 |
---|---|---|
committer | Jed Barber <jjbarber@y7mail.com> | 2019-01-26 10:50:36 +1100 |
commit | ada2593ebd6037cb78ce1ba795f283105d5cff26 (patch) | |
tree | c4cba2630898a6dcc5bf0ddac14dfc793cc99f15 /packrat_parser_lib_notes.txt | |
parent | ab48847797761e0fec0f2c49b8576a646ca3acaa (diff) |
Interfaces for Cursors and Graphs added
Diffstat (limited to 'packrat_parser_lib_notes.txt')
-rw-r--r-- | packrat_parser_lib_notes.txt | 64 |
1 files changed, 63 insertions, 1 deletions
diff --git a/packrat_parser_lib_notes.txt b/packrat_parser_lib_notes.txt index 1ae9707..333b999 100644 --- a/packrat_parser_lib_notes.txt +++ b/packrat_parser_lib_notes.txt @@ -9,7 +9,8 @@ Packrat.Lexer (generic over stamp enum, input item type, array of input items, a Packrat.Lexer.Combinators (merged into Packrat.Lexer) Packrat.Util Packrat.Errors (nested) -Packrat.Graphs (nested, generic over leaf array type) +Packrat.Interfaces (nested) +Packrat.Graphs (generic over leaf array type) Packrat.Tokens (nested, generic over contained array) Packrat.Text Packrat.Text.Std (nested, generic over parser/lexer label enums) @@ -308,14 +309,75 @@ Finish +Packrat.Interfaces + - nested package, defines interfaces and types that should be used to derive an abstract syntax graph + - some of these may be removed from Interfaces and just implemented in Graphs depending on what actually + ends up being necessary for parsing + +List of interfaces: +Cursor + - Is_Nothing + - Depth + - Is_Root + - Is_Branch + - Is_Leaf + - Label + - Elements + - Start + - Finish + - Choices + - Parent + - Child_Count + - All_Child_Count + - First_Child + - Last_Child + - Next_Sibling + - Prev_Sibling + - Delete_Children + - Delete_All_Children + - Equal_Subgraph + - Subgraph_Node_Count + - Find_In_Subgraph + +Directed_Acyclic_Graph + - Contains + - Leaf + - Branch + - Is_Empty + - Is_Ambiguous + - Node_Count + - Root_Count + - Root + - Append + - Prepend + - Attach_Choice + - Clear + - Delete_Position + - Find + + + + Packrat.Graphs + - builds on the interfaces in Packrat.Interfaces + - 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) List of funcs: Debug_String +Iterate +Reverse_Iterate +Iterate_Choice +Reverse_Iterate_Choice +Iterate_SUbtree +Iterate_Subtree_Choice + |