1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
package parse
// Node represents a parse tree as well as an AST.
type Node interface {
n() *node
Parent() Node
Begin() int
End() int
SourceText() string
Children() []Node
}
type node struct {
parent Node
begin, end int
sourceText string
children []Node
}
func (n *node) n() *node {
return n
}
func (n *node) Parent() Node {
return n.parent
}
func (n *node) Begin() int {
return n.begin
}
func (n *node) End() int {
return n.end
}
func (n *node) SourceText() string {
return n.sourceText
}
func (n *node) Children() []Node {
return n.children
}
|