all: getting closer to being able to read the stdlib
This commit is contained in:
41
main.go
41
main.go
@@ -70,40 +70,39 @@ func runRepl() {
|
||||
func runFile(path string) {
|
||||
e := eval.RootEnv()
|
||||
m := macro.NewMacroEnv()
|
||||
input, err := ioutil.ReadFile(path)
|
||||
inp, err := ioutil.ReadFile(path)
|
||||
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
parsed, err, unconsumed := parser.Parse(string(input))
|
||||
input := string(inp)
|
||||
|
||||
parsed, err := parser.ParseAll(input)
|
||||
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
if len(unconsumed) != 0 {
|
||||
fmt.Println("Unconsumed input:", strings.Join(unconsumed, " "))
|
||||
return
|
||||
for _, statement := range parsed {
|
||||
expanded, err := macro.Expand(statement, m)
|
||||
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
evald, err := eval.Eval(expanded, e)
|
||||
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Println(evald.Pretty())
|
||||
}
|
||||
|
||||
expanded, err := macro.Expand(parsed, m)
|
||||
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
evald, err := eval.Eval(expanded, e)
|
||||
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Println(evald.Pretty())
|
||||
}
|
||||
|
||||
func main() {
|
||||
|
Reference in New Issue
Block a user