Something went wrong. Try again.
AppleScript grammar for tree-sitter
applescript tree-sitter-grammar tree-sitter
Something went wrong. Try again.
4.8 kB · 192 lines
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193================================================================================Handler call with multiple parameters================================================================================
on myHandler(a, b, c) return a & b & cend myHandler
set result to myHandler("x", "y", "z")
--------------------------------------------------------------------------------
(source_file (handler_definition (simple_handler name: (identifier) (parameter_list (identifier) (identifier) (identifier)) (return_statement value: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) end_name: (identifier))) (set_statement target: (identifier) value: (handler_call name: (identifier) (argument_list (string) (string) (string)))))
================================================================================Nested handler calls================================================================================
on outer(x) return x * 2end outer
on inner(y) return y + 1end inner
set result to outer(inner(5))
--------------------------------------------------------------------------------
(source_file (handler_definition (simple_handler name: (identifier) (parameter_list (identifier)) (return_statement value: (binary_expression left: (identifier) right: (number (integer)))) end_name: (identifier))) (handler_definition (simple_handler name: (identifier) (parameter_list (identifier)) (return_statement value: (binary_expression left: (identifier) right: (number (integer)))) end_name: (identifier))) (set_statement target: (identifier) value: (handler_call name: (identifier) (argument_list (handler_call name: (identifier) (argument_list (number (integer))))))))
================================================================================Property access handler call================================================================================
use kl : script "Library"
on processText(txt) return kl's trim(txt)end processText
--------------------------------------------------------------------------------
(source_file (use_statement alias: (identifier) (string)) (handler_definition (simple_handler name: (identifier) (parameter_list (identifier)) (return_statement value: (handler_call object: (identifier) name: (identifier) (argument_list (identifier)))) end_name: (identifier))))
================================================================================Handler call with binary expression arguments================================================================================
on combine(a, b) return a & bend combine
set x to 5set y to 10set result to combine(x + 1, y * 2)
--------------------------------------------------------------------------------
(source_file (handler_definition (simple_handler name: (identifier) (parameter_list (identifier) (identifier)) (return_statement value: (binary_expression left: (identifier) right: (identifier))) end_name: (identifier))) (set_statement target: (identifier) value: (number (integer))) (set_statement target: (identifier) value: (number (integer))) (set_statement target: (identifier) value: (handler_call name: (identifier) (argument_list (binary_expression left: (identifier) right: (number (integer))) (binary_expression left: (identifier) right: (number (integer)))))))
================================================================================Script object handler call================================================================================
use kl : script "Library"
set cleaned to kl's split(kl's extractBetween(text, "(", ")"), ",")
--------------------------------------------------------------------------------
(source_file (use_statement alias: (identifier) (string)) (set_statement target: (identifier) value: (handler_call object: (identifier) name: (identifier) (argument_list (handler_call object: (identifier) name: (identifier) (argument_list (identifier) (string) (string))) (string)))))