func NewConstRune(n rune) *ConstNumber {
	z := new(ConstNumber)
	z.Type = ConstRune
	z.Value.Re.Denom().SetInt64(1)
	z.Value.Re.Num().SetInt64(int64(n))
	return z
}
Use with token.CHAR ast.BasicLit
package eval
import "strconv"
type ConstNumber struct {
	Value BigComplex
	Type ConstType
}
func NewConstInteger(i string) (*ConstNumber, bool) {
	z := new(ConstNumber)
	z.Type = ConstInt
	z.Value.Re.Denom().SetInt64(1)
	_, ok := z.Value.Re.Num().SetString(i, 0)
	return z, ok
}
func NewConstFloat(r string) (*ConstNumber, bool) {
	z := new(ConstNumber)
	z.Type = ConstFloat
	_, ok := z.Value.Re.SetString(r)
	return z, ok
}
func NewConstImag(i string) (*ConstNumber, bool) {
	z := new(ConstNumber)
	z.Type = ConstComplex
	ok := i[len(i)-1] == 'i'
	if ok {
		_, ok = z.Value.Im.SetString(i[:len(i)-1])
	}
	return z, ok
}