func (p *printer) identList(list []*ast.Ident, indent bool) {
	xlist := make([]ast.Expr, len(list))
	for i, x := range list {
		xlist[i] = x
	}
	var mode exprListMode
	if !indent {
		mode = noIndent
	}
	p.exprList(token.NoPos, xlist, 1, mode, token.NoPos)
}
If indent is set, a multi-line identifier list is indented after the
first linebreak encountered.
package printer
import (
	"bytes"
	"strconv"
	"strings"
	"unicode"
	"unicode/utf8"
	"html"
	"github.com/8byt/gox/ast"
	"github.com/8byt/gox/token"
)
func (p *printer) linebreak(line, min int, ws whiteSpace, newSection bool) (printedBreak bool) {
	n := nlimit(line - p.pos.Line)
	if n < min {
		n = min
	}
	if n > 0 {
		p.print(ws)
		if newSection {
			p.print(formfeed)
			n--
		}
		for ; n > 0; n-- {
			p.print(newline)
		}
		printedBreak = true
	}
	return
}
func (p *printer) setComment(g *ast.CommentGroup) {
	if g == nil || !p.useNodeComments {
		return
	}
	if p.comments == nil {
		p.comments = make([]*ast.CommentGroup, 1)
	} else if p.cindex < len(p.comments) {
		p.flush(p.posFor(g.List[0].Pos()), token.ILLEGAL)
		p.comments = p.comments[0:1]
		p.internalError("setComment found pending comments")
	}
	p.comments[0] = g
	p.cindex = 0
	if p.commentOffset == infinity {
		p.nextComment()  
	}
}
type exprListMode uint
const (
	commaTerm exprListMode = 1 << iota  
	noIndent                            
)