]>
Commit | Line | Data |
---|---|---|
15c0b25d AP |
1 | package hclsyntax |
2 | ||
3 | import ( | |
4 | "github.com/hashicorp/hcl2/hcl" | |
5 | ) | |
6 | ||
7 | // Node is the abstract type that every AST node implements. | |
8 | // | |
9 | // This is a closed interface, so it cannot be implemented from outside of | |
10 | // this package. | |
11 | type Node interface { | |
12 | // This is the mechanism by which the public-facing walk functions | |
13 | // are implemented. Implementations should call the given function | |
14 | // for each child node and then replace that node with its return value. | |
15 | // The return value might just be the same node, for non-transforming | |
16 | // walks. | |
17 | walkChildNodes(w internalWalkFunc) | |
18 | ||
19 | Range() hcl.Range | |
20 | } | |
21 | ||
22 | type internalWalkFunc func(Node) Node |