Refactor Parsing/Runtime

Signed-off-by: Will Hawkins <hawkinsw@obs.cr>
This commit is contained in:
Will Hawkins
2026-02-24 00:28:41 -05:00
parent f9353c683e
commit 64a0fe4255
29 changed files with 1269 additions and 974 deletions
+11 -8
View File
@@ -62,7 +62,7 @@ public struct RequireResult: ExpressionMacro {
return """
{
switch \(argument) {
case Result.Ok(let _): return true
case Result.Ok(_): return true
case Result.Error(let __error):
print("Unexpected result: \\(__error)")
return false
@@ -79,18 +79,21 @@ public struct RequireErrorResult: ExpressionMacro {
) throws -> ExprSyntax {
let arguments = node.argumentList.indices
let expected_error = node.argumentList[arguments.startIndex]
let error_producer = node.argumentList[arguments.index(after: arguments.startIndex)]
let expected_error = node.argumentList[arguments.startIndex].expression
let error_producer = node.argumentList[arguments.index(after: arguments.startIndex)].expression
return """
return ExprSyntax("""
{
if case Result.Error(\(expected_error)) = \(error_producer) {
true
let __expected_error = \(expected_error)
let __actual_error = \(error_producer)
if case Result.Error(__expected_error) = __actual_error {
return true
} else {
false
print("Expected Error: \\(__expected_error) but got Error: \\(__actual_error)")
return false
}
}()
"""
""")
}
}