mirror of
https://codeberg.org/ProgramSnail/tree-sitter-lang.git
synced 2025-12-06 06:38:51 +00:00
result / optional return type modifiers for functions (one for all returns)
This commit is contained in:
parent
9c44228eec
commit
24015fd8df
2 changed files with 43 additions and 7 deletions
|
|
@ -219,8 +219,12 @@ parse_number : Unit! = {
|
|||
bring ();
|
||||
}
|
||||
|
||||
: example of or_in and or_out usage for template operators
|
||||
( & ) |-> 'a |-> 'b <-| 'x <-| 'y = (|-> 'a := <-| 'x) && (|-> 'b := <-| 'y);
|
||||
: example of or_in and or_out usage for template operators (tuple input and tuple output)
|
||||
( & ) |-> 'a |-> 'b <-| 'x <-| 'y = ('a := 'x) && ('b := 'y);
|
||||
|
||||
: function, that return result ('!' not used on calls)
|
||||
: useful when tuples returned
|
||||
result_func! 'a 'b -> 'c -> 'd = ?? 'a == 0 => error "some error" !!=> 'c := 'a, 'd := 'b, ()
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
|
@ -1194,15 +1198,46 @@ parse_number : Unit! = {
|
|||
(argument_name_identifier)
|
||||
(operator_expression
|
||||
(match
|
||||
(reference_expression
|
||||
(name_expression
|
||||
(argument_name_identifier))
|
||||
(case
|
||||
(reference_expression
|
||||
(name_expression
|
||||
(argument_name_identifier))))
|
||||
(operator)
|
||||
(match
|
||||
(reference_expression
|
||||
(name_expression
|
||||
(argument_name_identifier))
|
||||
(case
|
||||
(reference_expression
|
||||
(argument_name_identifier)))))))
|
||||
(name_expression
|
||||
(argument_name_identifier))))))
|
||||
(empty_lines)
|
||||
(ERROR
|
||||
(definition_info
|
||||
(info)
|
||||
(info))
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(comma_expression
|
||||
(condition
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(argument_name_identifier))
|
||||
(operator)
|
||||
(number_literal))
|
||||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(string_literal))
|
||||
(name_expression
|
||||
(argument_name_identifier)))
|
||||
(ERROR
|
||||
(argument_name_identifier))
|
||||
(match
|
||||
(name_expression
|
||||
(argument_name_identifier))
|
||||
(case
|
||||
(name_expression
|
||||
(argument_name_identifier)))))
|
||||
(unit_literal)))
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ module.exports = grammar({
|
|||
repeat(seq($.constraint, ';')),
|
||||
optional($._var_let),
|
||||
choice(field('name', $.simple_name_identifier), seq('(', field('name', $.operator), ')')),
|
||||
optional($._optional_result),
|
||||
repeat(seq(
|
||||
optional($.annotation_identifier),
|
||||
optional($._reference),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue