setNodeSeq(&as.Rlist, right)
as.Colas = true
as.Lineno = lno
- colasdefn(left, as)
+ colasdefn(as.List, as)
// make the tree prettier; not necessary
- if count(left) == 1 && count(right) == 1 {
+ if nodeSeqLen(as.List) == 1 && nodeSeqLen(as.Rlist) == 1 {
as.Left = nodeSeqFirst(as.List)
as.Right = nodeSeqFirst(as.Rlist)
setNodeSeq(&as.List, nil)
r := Nod(ORANGE, nil, p.expr())
setNodeSeq(&r.List, lhs)
r.Colas = true
- colasdefn(lhs, r)
+ colasdefn(r.List, r)
return r
}
l := list1(label)
if ls != nil {
if ls.Op == OBLOCK && nodeSeqLen(ls.Ninit) == 0 {
- l = concat(l, ls.List)
+ appendNodeSeq(&l, ls.List)
} else {
- l = list(l, ls)
+ appendNodeSeqNode(&l, ls)
}
}
return liststmt(l)
init, cond, _ := p.header(false)
h := Nod(OIF, nil, nil)
- setNodeSeq(&h.Ninit, []*Node{init})
+ if init != nil {
+ setNodeSeq(&h.Ninit, []*Node{init})
+ }
h.Left = cond
return h
}
setNodeSeq(&stmt.Rlist, []*Node{p.if_stmt()})
} else {
cs := p.compound_stmt(true)
- if cs.Op == OBLOCK && cs.Ninit == nil {
+ if cs.Op == OBLOCK && nodeSeqLen(cs.Ninit) == 0 {
setNodeSeq(&stmt.Rlist, cs.List)
} else {
setNodeSeq(&stmt.Rlist, []*Node{cs})
break
}
if s != nil && s.Op == OBLOCK && nodeSeqLen(s.Ninit) == 0 {
- l = concat(l, s.List)
+ appendNodeSeq(&l, s.List)
} else {
- l = list(l, s)
+ appendNodeSeqNode(&l, s)
}
// customized version of osemi:
// ';' is optional before a closing ')' or '}'