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

@@ -16,7 +16,7 @@ func ParseExpression(i *iterator.Iterator[tokenizer.Token]) (lambda.Expression,
switch token.Type {
case tokenizer.TokenAtom:
return lambda.Atom{Value: token.Value}, nil
return lambda.NewAtom(token.Value), nil
case tokenizer.TokenDot:
return nil, fmt.Errorf("Token '.' found without a corresponding slash (column %d).", token.Index)
case tokenizer.TokenSlash:
@@ -39,7 +39,7 @@ func ParseExpression(i *iterator.Iterator[tokenizer.Token]) (lambda.Expression,
return nil, fmt.Errorf("Could not parse function body: %w", body_err)
}
return lambda.Function{Parameter: atom.Value, Body: body}, nil
return lambda.NewFunction(atom.Value, body), nil
case tokenizer.TokenOpenParen:
fn, fn_err := ParseExpression(i)
if fn_err != nil {
@@ -58,7 +58,7 @@ func ParseExpression(i *iterator.Iterator[tokenizer.Token]) (lambda.Expression,
return nil, fmt.Errorf("Expected call terminating parenthesis, got '%v' (column %v).", close.Value, close.Index)
}
return lambda.Call{Function: fn, Argument: arg}, nil
return lambda.NewCall(fn, arg), nil
case tokenizer.TokenCloseParen:
return nil, fmt.Errorf("Token ')' found without a corresponding openning parenthesis (column %d).", token.Index)
default: