111 lines
3.0 KiB
Plaintext
111 lines
3.0 KiB
Plaintext
==================
|
|
Catch value sources
|
|
==================
|
|
|
|
recover func() void {
|
|
a :: fail() catch |err| handle(err)
|
|
b :: fail() catch |err| match err {
|
|
.bad: 1
|
|
else: 2
|
|
}
|
|
c :: fail() catch { yield 3 }
|
|
d :: fail() catch if true { yield 4 } else { yield 5 }
|
|
}
|
|
|
|
---
|
|
|
|
(source_file
|
|
(function_declaration
|
|
(identifier)
|
|
(parameter_list)
|
|
(type
|
|
(builtin_type))
|
|
(block
|
|
(statement
|
|
(constant_declaration
|
|
(identifier)
|
|
(expression
|
|
(catch_expression
|
|
(expression
|
|
(call_expression
|
|
(expression
|
|
(identifier))
|
|
(argument_list)))
|
|
(error_capture
|
|
(identifier))
|
|
(expression
|
|
(call_expression
|
|
(expression
|
|
(identifier))
|
|
(argument_list
|
|
(expression
|
|
(identifier)))))))))
|
|
(statement
|
|
(constant_declaration
|
|
(identifier)
|
|
(expression
|
|
(catch_expression
|
|
(expression
|
|
(call_expression
|
|
(expression
|
|
(identifier))
|
|
(argument_list)))
|
|
(error_capture
|
|
(identifier))
|
|
(match_statement
|
|
(expression
|
|
(identifier))
|
|
(match_arm
|
|
(expression
|
|
(enum_literal
|
|
(identifier)))
|
|
(statement
|
|
(expression_statement
|
|
(expression
|
|
(integer)))))
|
|
(match_arm
|
|
(statement
|
|
(expression_statement
|
|
(expression
|
|
(integer))))))))))
|
|
(statement
|
|
(constant_declaration
|
|
(identifier)
|
|
(expression
|
|
(catch_expression
|
|
(expression
|
|
(call_expression
|
|
(expression
|
|
(identifier))
|
|
(argument_list)))
|
|
(block
|
|
(statement
|
|
(yield_statement
|
|
(expression
|
|
(integer)))))))))
|
|
(statement
|
|
(constant_declaration
|
|
(identifier)
|
|
(expression
|
|
(catch_expression
|
|
(expression
|
|
(call_expression
|
|
(expression
|
|
(identifier))
|
|
(argument_list)))
|
|
(if_statement
|
|
(expression
|
|
(boolean))
|
|
(statement
|
|
(block
|
|
(statement
|
|
(yield_statement
|
|
(expression
|
|
(integer))))))
|
|
(statement
|
|
(block
|
|
(statement
|
|
(yield_statement
|
|
(expression
|
|
(integer))))))))))))))
|