feat: wogihrsoiuvjsroirgj

This commit is contained in:
2025-12-24 14:55:33 -05:00
parent 1d8ecba118
commit 2c3ce9baf7
8 changed files with 204 additions and 26 deletions

View File

@@ -2,28 +2,37 @@ package main
import (
"errors"
"log/slog"
"fmt"
"os"
"git.maximhutz.com/max/lambda/pkg/cli"
"git.maximhutz.com/max/lambda/internal/cli"
"git.maximhutz.com/max/lambda/pkg/lambda"
"git.maximhutz.com/max/lambda/pkg/parser"
"git.maximhutz.com/max/lambda/pkg/tokenizer"
)
func main() {
slog.Info("Using program arguments.", "args", os.Args)
options, err := cli.ParseOptions(os.Args[1:])
cli.HandleError(err)
slog.Info("Parsed CLI options.", "options", options)
logger := cli.GetLogger(*options)
logger.Info("Using program arguments.", "args", os.Args)
logger.Info("Parsed CLI options.", "options", options)
tokens, fails := tokenizer.GetTokens([]rune(options.Input))
if len(fails) > 0 {
cli.HandleError(errors.Join(fails...))
}
slog.Info("Parsed tokens.", "tokens", tokens)
logger.Info("Parsed tokens.", "tokens", tokens)
ast, err := parser.GetTree(tokens)
expression, err := parser.GetTree(tokens)
cli.HandleError(err)
slog.Info("Parsed syntax tree.", "tree", ast)
logger.Info("Parsed syntax tree.", "tree", expression)
evaluated := lambda.Evaluate(expression)
cli.HandleError(err)
logger.Info("Evaluated expression.", "tree", evaluated)
fmt.Println(lambda.ToString(evaluated))
}