func (p *ComprehensionExpr) End() token.Pos {
	return p.Rpos + 1
}
End - position of first character immediately after the node
package ast
import (
	"github.com/goplus/gop/token"
)
type SliceLit struct {
	Lbrack     token.Pos  
	Elts       []Expr     
	Rbrack     token.Pos  
	Incomplete bool       
}
func (p *SliceLit) Pos() token.Pos {
	return p.Lbrack
}
func (p *SliceLit) End() token.Pos {
	return p.Rbrack + 1
}
func (*SliceLit) exprNode() {}
type ErrWrapExpr struct {
	X       Expr
	Tok     token.Token  
	TokPos  token.Pos
	Default Expr  
}
func (p *ErrWrapExpr) Pos() token.Pos {
	return p.X.Pos()
}
func (p *ErrWrapExpr) End() token.Pos {
	if p.Default != nil {
		return p.Default.End()
	}
	return p.TokPos + 1
}
func (*ErrWrapExpr) exprNode() {}
type LambdaExpr struct {
	First       token.Pos
	Lhs         []*Ident
	Rarrow      token.Pos
	Rhs         []Expr
	Last        token.Pos
	LhsHasParen bool
	RhsHasParen bool
}
type LambdaExpr2 struct {
	First       token.Pos
	Lhs         []*Ident
	Rarrow      token.Pos
	Body        *BlockStmt
	LhsHasParen bool
}
func (p *LambdaExpr) Pos() token.Pos {
	return p.First
}
func (p *LambdaExpr) End() token.Pos {
	return p.Last
}
func (p *LambdaExpr2) Pos() token.Pos {
	return p.First
}
func (p *LambdaExpr2) End() token.Pos {
	return p.Body.End()
}
func (*LambdaExpr) exprNode()  {}
func (*LambdaExpr2) exprNode() {}
type ForPhrase struct {
	For        token.Pos  
	Key, Value *Ident     
	TokPos     token.Pos  
	X          Expr       
	Init       Stmt       
	Cond       Expr       
}
func (p *ForPhrase) Pos() token.Pos { return p.For }
func (p *ForPhrase) End() token.Pos { return p.X.End() }
func (p *ForPhrase) exprNode() {}
type ComprehensionExpr struct {
	Lpos token.Pos    
	Tok  token.Token  
	Elt  Expr         
	Fors []*ForPhrase
	Rpos token.Pos  
}
func (p *ComprehensionExpr) Pos() token.Pos {
	return p.Lpos
}