package main import ( "fmt" ) func opRead(scanner *scanProvider) value { s := "\n" for s == "\n" && scanner.Scan() { s = scanner.Text() } if s == "\n" { panic(fmt.Errorf("read: %s", errUnexpectedEndOfInput)) } return &_unknown{s: `"` + s} } func opPrint(val1 value) value { fmt.Println(escapeWord(val1.String())) return val1 } func opReadList(scanner *scanProvider) *_list { list, line := []string{}, false for scanner.Scan() { s := scanner.Text() if s == "\n" && line { break } line = true if s != "\n" { list = append(list, parseWord(`"`+s).Value()) } } return &_list{list: list} }