fix node lists
This commit is contained in:
@@ -12,11 +12,10 @@ type Case struct {
|
||||
node.SimpleNode
|
||||
token token.Token
|
||||
cond node.Node
|
||||
stmts node.Node
|
||||
stmts []node.Node
|
||||
}
|
||||
|
||||
//TODO: stmts myst be []node.Node
|
||||
func NewCase(token token.Token, cond node.Node, stmts node.Node) node.Node {
|
||||
func NewCase(token token.Token, cond node.Node, stmts []node.Node) node.Node {
|
||||
return Case{
|
||||
node.SimpleNode{Name: "Case", Attributes: make(map[string]string)},
|
||||
token,
|
||||
@@ -27,8 +26,14 @@ func NewCase(token token.Token, cond node.Node, stmts node.Node) node.Node {
|
||||
|
||||
func (n Case) Print(out io.Writer, indent string) {
|
||||
fmt.Fprintf(out, "\n%v%v [%d %d] %q", indent, n.Name, n.token.StartLine, n.token.EndLine, n.token.Value)
|
||||
|
||||
fmt.Fprintf(out, "\n%vcond:", indent+" ")
|
||||
n.cond.Print(out, indent+" ")
|
||||
fmt.Fprintf(out, "\n%vstmts:", indent+" ")
|
||||
n.stmts.Print(out, indent+" ")
|
||||
|
||||
if n.stmts != nil {
|
||||
fmt.Fprintf(out, "\n%vstmts:", indent+" ")
|
||||
for _, nn := range n.stmts {
|
||||
nn.Print(out, indent+" ")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,11 +13,10 @@ type Catch struct {
|
||||
token token.Token
|
||||
types []node.Node
|
||||
variable node.Node
|
||||
stmts node.Node
|
||||
stmts []node.Node
|
||||
}
|
||||
|
||||
//TODO: stmts myst be []node.Node
|
||||
func NewCatch(token token.Token, types []node.Node, variable node.Node, stmts node.Node) node.Node {
|
||||
func NewCatch(token token.Token, types []node.Node, variable node.Node, stmts []node.Node) node.Node {
|
||||
return Catch{
|
||||
node.SimpleNode{Name: "Catch", Attributes: make(map[string]string)},
|
||||
token,
|
||||
@@ -38,6 +37,10 @@ func (n Catch) Print(out io.Writer, indent string) {
|
||||
fmt.Fprintf(out, "\n%vvariable:", indent+" ")
|
||||
n.variable.Print(out, indent+" ")
|
||||
|
||||
fmt.Fprintf(out, "\n%vstmts:", indent+" ")
|
||||
n.stmts.Print(out, indent+" ")
|
||||
if n.stmts != nil {
|
||||
fmt.Fprintf(out, "\n%vstmts:", indent+" ")
|
||||
for _, nn := range n.stmts {
|
||||
nn.Print(out, indent+" ")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,14 +12,14 @@ type Class struct {
|
||||
node.SimpleNode
|
||||
token token.Token
|
||||
modifiers []string
|
||||
args node.Node
|
||||
args []node.Node
|
||||
extends node.Node
|
||||
implements node.Node
|
||||
stmts node.Node
|
||||
implements []node.Node
|
||||
stmts []node.Node
|
||||
}
|
||||
|
||||
//TODO: stmts myst be []node.Node
|
||||
func NewClass(token token.Token, modifiers []string, args node.Node, extends node.Node, implements node.Node, stmts node.Node) node.Node {
|
||||
func NewClass(token token.Token, modifiers []string, args []node.Node, extends node.Node, implements []node.Node, stmts []node.Node) node.Node {
|
||||
return Class{
|
||||
node.SimpleNode{Name: "Class", Attributes: make(map[string]string)},
|
||||
token,
|
||||
@@ -43,7 +43,9 @@ func (n Class) Print(out io.Writer, indent string) {
|
||||
|
||||
if n.args != nil {
|
||||
fmt.Fprintf(out, "\n%vargs:", indent+" ")
|
||||
n.args.Print(out, indent+" ")
|
||||
for _, nn := range n.args {
|
||||
nn.Print(out, indent+" ")
|
||||
}
|
||||
}
|
||||
|
||||
if n.extends != nil {
|
||||
@@ -53,9 +55,15 @@ func (n Class) Print(out io.Writer, indent string) {
|
||||
|
||||
if n.implements != nil {
|
||||
fmt.Fprintf(out, "\n%vimplements:", indent+" ")
|
||||
n.implements.Print(out, indent+" ")
|
||||
for _, nn := range n.implements {
|
||||
nn.Print(out, indent+" ")
|
||||
}
|
||||
}
|
||||
|
||||
fmt.Fprintf(out, "\n%vstmts:", indent+" ")
|
||||
n.stmts.Print(out, indent+" ")
|
||||
if n.stmts != nil {
|
||||
fmt.Fprintf(out, "\n%vstmts:", indent+" ")
|
||||
for _, nn := range n.stmts {
|
||||
nn.Print(out, indent+" ")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,10 +11,10 @@ import (
|
||||
type Default struct {
|
||||
node.SimpleNode
|
||||
token token.Token
|
||||
stmts node.Node
|
||||
stmts []node.Node
|
||||
}
|
||||
|
||||
func NewDefault(token token.Token, stmts node.Node) node.Node {
|
||||
func NewDefault(token token.Token, stmts []node.Node) node.Node {
|
||||
return Default{
|
||||
node.SimpleNode{Name: "Default", Attributes: make(map[string]string)},
|
||||
token,
|
||||
@@ -24,6 +24,11 @@ func NewDefault(token token.Token, stmts node.Node) node.Node {
|
||||
|
||||
func (n Default) Print(out io.Writer, indent string) {
|
||||
fmt.Fprintf(out, "\n%v%v [%d %d] %q", indent, n.Name, n.token.StartLine, n.token.EndLine, n.token.Value)
|
||||
fmt.Fprintf(out, "\n%vstmts:", indent+" ")
|
||||
n.stmts.Print(out, indent+" ")
|
||||
|
||||
if n.stmts != nil {
|
||||
fmt.Fprintf(out, "\n%vstmts:", indent+" ")
|
||||
for _, nn := range n.stmts {
|
||||
nn.Print(out, indent+" ")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,11 +11,10 @@ import (
|
||||
type Finally struct {
|
||||
node.SimpleNode
|
||||
token token.Token
|
||||
stmts node.Node
|
||||
stmts []node.Node
|
||||
}
|
||||
|
||||
//TODO: stmts myst be []node.Node
|
||||
func NewFinally(token token.Token, stmts node.Node) node.Node {
|
||||
func NewFinally(token token.Token, stmts []node.Node) node.Node {
|
||||
return Finally{
|
||||
node.SimpleNode{Name: "Finally", Attributes: make(map[string]string)},
|
||||
token,
|
||||
@@ -26,6 +25,10 @@ func NewFinally(token token.Token, stmts node.Node) node.Node {
|
||||
func (n Finally) Print(out io.Writer, indent string) {
|
||||
fmt.Fprintf(out, "\n%v%v [%d %d] %q", indent, n.Name, n.token.StartLine, n.token.EndLine, n.token.Value)
|
||||
|
||||
fmt.Fprintf(out, "\n%vstmts:", indent+" ")
|
||||
n.stmts.Print(out, indent+" ")
|
||||
if n.stmts != nil {
|
||||
fmt.Fprintf(out, "\n%vstmts:", indent+" ")
|
||||
for _, nn := range n.stmts {
|
||||
nn.Print(out, indent+" ")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,13 +11,12 @@ import (
|
||||
type Try struct {
|
||||
node.SimpleNode
|
||||
token token.Token
|
||||
stmts node.Node
|
||||
stmts []node.Node
|
||||
catches []node.Node
|
||||
finally node.Node
|
||||
}
|
||||
|
||||
//TODO: stmts myst be []node.Node
|
||||
func NewTry(token token.Token, stmts node.Node, catches []node.Node, finally node.Node) node.Node {
|
||||
func NewTry(token token.Token, stmts []node.Node, catches []node.Node, finally node.Node) node.Node {
|
||||
return Try{
|
||||
node.SimpleNode{Name: "Try", Attributes: make(map[string]string)},
|
||||
token,
|
||||
@@ -30,12 +29,18 @@ func NewTry(token token.Token, stmts node.Node, catches []node.Node, finally nod
|
||||
func (n Try) Print(out io.Writer, indent string) {
|
||||
fmt.Fprintf(out, "\n%v%v [%d %d] %q", indent, n.Name, n.token.StartLine, n.token.EndLine, n.token.Value)
|
||||
|
||||
fmt.Fprintf(out, "\n%vstmts:", indent+" ")
|
||||
n.stmts.Print(out, indent+" ")
|
||||
if n.stmts != nil {
|
||||
fmt.Fprintf(out, "\n%vstmts:", indent+" ")
|
||||
for _, nn := range n.stmts {
|
||||
nn.Print(out, indent+" ")
|
||||
}
|
||||
}
|
||||
|
||||
fmt.Fprintf(out, "\n%vcatches:", indent+" ")
|
||||
for _, nn := range n.catches {
|
||||
nn.Print(out, indent+" ")
|
||||
if n.catches != nil {
|
||||
fmt.Fprintf(out, "\n%vcatches:", indent+" ")
|
||||
for _, nn := range n.catches {
|
||||
nn.Print(out, indent+" ")
|
||||
}
|
||||
}
|
||||
|
||||
if n.finally != nil {
|
||||
|
||||
Reference in New Issue
Block a user