// printValues neatly prints the values returned from execution, followed by a newline. // It also handles the ')debug types' output. func printValues(conf *config.Config, writer io.Writer, values []value.Value) { if len(values) == 0 { return } if conf.Debug("types") { for i, v := range values { if i > 0 { fmt.Fprint(writer, ",") } fmt.Fprintf(writer, "%T", v) } fmt.Fprintln(writer) } for i, v := range values { s := v.Sprint(conf) if i > 0 && len(s) > 0 && s[len(s)-1] != '\n' { fmt.Fprint(writer, " ") } fmt.Fprint(writer, s) } fmt.Fprintln(writer) }
func (i Int) Sprint(conf *config.Config) string { format := conf.Format() if format != "" { verb, prec, ok := conf.FloatFormat() if ok { return i.floatString(verb, prec) } return fmt.Sprintf(format, int64(i)) } base := conf.OutputBase() if base == 0 { base = 10 } return strconv.FormatInt(int64(i), base) }
func setIntString(conf *config.Config, s string) (Int, error) { i, err := strconv.ParseInt(s, conf.InputBase(), intBits) return Int(i), err }