feat: wogihrsoiuvjsroirgj
This commit is contained in:
@@ -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))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user