dust/tree-sitter-dust/corpus/functions.txt

190 lines
4.6 KiB
Plaintext

================================================================================
Anonymous Function
================================================================================
(fn) <str> { "Hiya" }
--------------------------------------------------------------------------------
(root
(statement
(expression
(value
(function
(type_definition
(type))
(block
(statement
(expression
(value
(string))))))))))
================================================================================
Function Declaration
================================================================================
foobar = (fn x <int>, y <int>) <int> {
x + y
}
--------------------------------------------------------------------------------
(root
(statement
(assignment
(identifier)
(assignment_operator)
(statement
(expression
(value
(function
(identifier)
(type_definition
(type))
(identifier)
(type_definition
(type))
(type_definition
(type))
(block
(statement
(expression
(math
(expression
(identifier))
(math_operator)
(expression
(identifier)))))))))))))
================================================================================
Function Call
================================================================================
(foobar "Hiya")
--------------------------------------------------------------------------------
(root
(statement
(expression
(function_call
(expression
(identifier))
(expression
(value
(string)))))))
================================================================================
Complex Function Call
================================================================================
(foobar
"hi"
42
{
x = 1
y = 2
}
)
--------------------------------------------------------------------------------
(root
(statement
(expression
(function_call
(expression
(identifier))
(expression
(value
(string)))
(expression
(value
(integer)))
(expression
(value
(map
(identifier)
(statement
(expression
(value
(integer))))
(identifier)
(statement
(expression
(value
(integer)))))))))))
================================================================================
Callback Function Call
================================================================================
x = (fn cb <() -> bool>) <bool> {
(cb)
}
(x (fn) <bool> { true })
--------------------------------------------------------------------------------
(root
(statement
(assignment
(identifier)
(assignment_operator)
(statement
(expression
(value
(function
(identifier)
(type_definition
(type
(type)))
(type_definition
(type))
(block
(statement
(expression
(function_call
(expression
(identifier))))))))))))
(statement
(expression
(function_call
(expression
(identifier))
(expression
(value
(function
(type_definition
(type))
(block
(statement
(expression
(value
(boolean))))))))))))
================================================================================
Nested Function Call
================================================================================
(from_json (read 'file.json'))
--------------------------------------------------------------------------------
(root
(statement
(expression
(function_call
(expression
(identifier
(built_in_function)))
(expression
(function_call
(expression
(identifier
(built_in_function)))
(expression
(value
(string)))))))))