mirror of
https://codeberg.org/ProgramSnail/tree-sitter-lang.git
synced 2025-12-06 06:38:51 +00:00
references deduction in function definitions (reference modifiers can be added to argument names)
This commit is contained in:
parent
2e0dfdf3fa
commit
8cc264fa5a
2 changed files with 32 additions and 1 deletions
|
|
@ -106,6 +106,7 @@ func_2 = {
|
|||
print t.0;
|
||||
}
|
||||
|
||||
: operator definition example
|
||||
( - ) 'a 'b = 'a + neg 'b;
|
||||
|
||||
test.something = {
|
||||
|
|
@ -187,7 +188,10 @@ test_ref_access_precendence = {
|
|||
print_two 'a 'b = print 'a, print 'b;
|
||||
|
||||
: example of reference args and comma operator
|
||||
swap 'a 'b : <> 'A <> 'A = %c := <- 'a, 'a := <- 'b, 'b := <- c; // TODO: use move in some way ??
|
||||
swap 'a 'b : <> 'A <> 'A = %c := <- 'a, 'a := <- 'b, 'b := <- c;
|
||||
|
||||
: previous example with automatic type deduction
|
||||
swap <> 'a <> 'b = %c := <- 'a, 'a := <- 'b, 'b := <- c;
|
||||
|
||||
: several outputs example
|
||||
scan_three : -> String -> String -> String = scan & scan & scan;
|
||||
|
|
@ -591,6 +595,7 @@ arg_deduction_example 'name 'duration : <- String <- Float -> Task = Task 'name
|
|||
(simple_name_identifier)
|
||||
(number_literal)))))
|
||||
(function_definition
|
||||
(definition_info)
|
||||
(operator)
|
||||
(argument_name_identifier)
|
||||
(argument_name_identifier)
|
||||
|
|
@ -950,6 +955,31 @@ arg_deduction_example 'name 'duration : <- String <- Float -> Task = Task 'name
|
|||
(case
|
||||
(reference
|
||||
(simple_name_identifier))))))
|
||||
(function_definition
|
||||
(definition_info)
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(comma_expression
|
||||
(comma_expression
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
(case
|
||||
(reference
|
||||
(argument_name_identifier))))
|
||||
(match
|
||||
(name_expression
|
||||
(argument_name_identifier))
|
||||
(case
|
||||
(reference
|
||||
(argument_name_identifier)))))
|
||||
(match
|
||||
(name_expression
|
||||
(argument_name_identifier))
|
||||
(case
|
||||
(reference
|
||||
(simple_name_identifier))))))
|
||||
(function_definition
|
||||
(definition_info)
|
||||
(simple_name_identifier)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue