do read/eval/print/loop
(L *lua.LState)
| 121 | |
| 122 | // do read/eval/print/loop |
| 123 | func doREPL(L *lua.LState) { |
| 124 | rl, err := readline.New("> ") |
| 125 | if err != nil { |
| 126 | panic(err) |
| 127 | } |
| 128 | defer rl.Close() |
| 129 | for { |
| 130 | if str, err := loadline(rl, L); err == nil { |
| 131 | if err := L.DoString(str); err != nil { |
| 132 | fmt.Println(err) |
| 133 | } |
| 134 | } else { // error on loadline |
| 135 | fmt.Println(err) |
| 136 | return |
| 137 | } |
| 138 | } |
| 139 | } |
| 140 | |
| 141 | func incomplete(err error) bool { |
| 142 | if lerr, ok := err.(*lua.ApiError); ok { |