diff options
| author | JP Appel <jeanpierre.appel01@gmail.com> | 2025-04-28 23:34:42 -0400 |
|---|---|---|
| committer | JP Appel <jeanpierre.appel01@gmail.com> | 2025-04-28 23:34:42 -0400 |
| commit | 35ec0f5afb9800b25bd813bccc57a16bc9f837c4 (patch) | |
| tree | 3caae3b9410e6a2d8f099c0e072cb654f210e4b6 /pkg/query/query.go | |
| parent | 34b8d8ff1f9d65c08a9156d72f08cf548183c6f4 (diff) | |
Add document output formatting
Diffstat (limited to 'pkg/query/query.go')
| -rw-r--r-- | pkg/query/query.go | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/pkg/query/query.go b/pkg/query/query.go deleted file mode 100644 index b712370..0000000 --- a/pkg/query/query.go +++ /dev/null @@ -1,50 +0,0 @@ -package query - - -type Node struct { - Parent *Node - Children []*Node - Token -} - -type AST struct { - root Node - size uint64 -} - -// Walk an ast depth first -func (T AST) dfWalk() func() (*Node, bool) { - stack := nodeStack{make([]*Node, 0, T.size)} - stack.Push(&T.root) - - return func() (*Node, bool) { - n := stack.Pop() - for _, child := range n.Children { - stack.Push(child) - } - - if stack.IsEmpty() { - return n, false - } - return n, true - } -} - -// Walk an ast breadth first -func (T AST) bfWalk() func() (*Node, bool) { - queue := nodeQueue{} - queue.buf = make([]*Node, 0, T.size) - queue.Enqueue(&T.root) - - return func() (*Node, bool) { - n, err := queue.Dequeue() - if err != nil { - return nil, false - } - - for _, child := range n.Children { - queue.Enqueue(child) - } - return n, true - } -} |
