restructure

This commit is contained in:
basil 2025-06-08 15:02:35 -04:00
parent edcbfde351
commit eebaadc16e
Signed by: basil
SSH key fingerprint: SHA256:y04xIFL/yqNaG9ae9Vl95vELtHfApGAIoOGLeVLP/fE
21 changed files with 937 additions and 626 deletions

43
run.go Normal file
View file

@ -0,0 +1,43 @@
package loxgo
import (
"errors"
"os"
"git.red-panda.pet/pandaware/lox-go/ast"
"git.red-panda.pet/pandaware/lox-go/lexer"
"git.red-panda.pet/pandaware/lox-go/parser"
"git.red-panda.pet/pandaware/lox-go/reporter"
)
func RunFile(filename string) error {
bs, err := os.ReadFile(filename)
if err != nil {
return err
}
if err := Run(string(bs)); err != nil {
return err
}
return nil
}
func Run(source string) error {
s := lexer.New(source)
tokens, ok := s.ScanTokens()
if !ok {
return errors.New("lexer error")
}
p := parser.New(tokens)
expr, err := p.Parse()
if err != nil {
return errors.New("parser error")
}
printer := &ast.Printer{}
reporter.Debug(0, "astPrinter", "stdin", printer.Print(expr))
return nil
}