|
@@ -3,6 +3,7 @@ package main
|
|
|
import (
|
|
|
"fmt"
|
|
|
"os"
|
|
|
+ "io"
|
|
|
"path/filepath"
|
|
|
)
|
|
|
|
|
@@ -48,7 +49,9 @@ func runLines(vm *muesli.VM, line *liner.State) error {
|
|
|
} else if err == liner.ErrPromptAborted {
|
|
|
os.Stderr.WriteString("Aborted\n")
|
|
|
return nil
|
|
|
- } else {
|
|
|
+ } else if err == io.EOF {
|
|
|
+ return nil
|
|
|
+ } else {
|
|
|
os.Stderr.WriteString(fmt.Sprintf("Error reading line: %s\n", err))
|
|
|
}
|
|
|
}
|
|
@@ -63,7 +66,9 @@ func runFile(vm *muesli.VM, name string) error {
|
|
|
}
|
|
|
ast := parser.Parse()
|
|
|
err = ast.ToError()
|
|
|
- if err != nil {
|
|
|
+ if err == io.EOF {
|
|
|
+ return nil
|
|
|
+ } else if err != nil {
|
|
|
os.Stderr.WriteString(fmt.Sprintf("%s: execution error\n", err))
|
|
|
return err
|
|
|
}
|
|
@@ -98,13 +103,14 @@ func main() {
|
|
|
f.Close()
|
|
|
}
|
|
|
|
|
|
- if len(os.Args) > 0 {
|
|
|
+ if len(os.Args) > 1 {
|
|
|
for _, name := range os.Args {
|
|
|
err := runFile(vm, name)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
+ return
|
|
|
}
|
|
|
|
|
|
runLines(vm, line)
|