aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'cmd')
-rw-r--r--cmd/lang/main.go11
-rw-r--r--cmd/vm/main.go3
2 files changed, 6 insertions, 8 deletions
diff --git a/cmd/lang/main.go b/cmd/lang/main.go
index 0a8eee8..f5046a7 100644
--- a/cmd/lang/main.go
+++ b/cmd/lang/main.go
@@ -7,7 +7,6 @@ import (
"jinx/pkg/lang/parser"
"jinx/pkg/lang/scanner"
"jinx/pkg/lang/vm"
- "jinx/pkg/lang/vm/code"
"os"
)
@@ -32,8 +31,6 @@ func main() {
}
defer file.Close()
- var bc code.Code
-
scanner := scanner.New(file)
tokens, err := scanner.Scan()
if err != nil {
@@ -46,8 +43,8 @@ func main() {
exit("error during parsing: %v", err)
}
- comp := compiler.New(program)
- bc, err = comp.Compile()
+ comp := compiler.New("program", "noone", program)
+ module, err := comp.Compile()
if err != nil {
exit("compilation failed: %v", err)
}
@@ -59,13 +56,13 @@ func main() {
}
defer output.Close()
- if _, err := output.Write(bc.Code()); err != nil {
+ if _, err := output.Write(module.Code().Code()); err != nil {
exit("could not write to file: %v", err)
}
}
if *run {
- vm := vm.New(&bc, nil)
+ vm := vm.New(module)
if err := vm.Run(); err != nil {
exit("execution failed: %v", err)
}
diff --git a/cmd/vm/main.go b/cmd/vm/main.go
index 5ee954e..ecebcbf 100644
--- a/cmd/vm/main.go
+++ b/cmd/vm/main.go
@@ -4,6 +4,7 @@ import (
"flag"
"fmt"
"io"
+ "jinx/pkg/lang/modules"
"jinx/pkg/lang/vm"
"jinx/pkg/lang/vm/code"
"jinx/pkg/lang/vm/text"
@@ -90,7 +91,7 @@ func main() {
}
if *run {
- vm := vm.New(&bc, nil)
+ vm := vm.New(modules.NewUnknownModule(&bc))
if err := vm.Run(); err != nil {
exit("execution failed: %v", err)
}