76 lines
3.9 KiB
Scheme
76 lines
3.9 KiB
Scheme
(sequence_expression
|
|
(parenthesized_expression
|
|
(assignment_expression
|
|
left: (member_expression
|
|
(identifier) @_n
|
|
(property_identifier) @message_name
|
|
(#eq? @_n "n"))
|
|
right: (parenthesized_expression (sequence_expression
|
|
right: (sequence_expression
|
|
right: (sequence_expression
|
|
left: (parenthesized_expression (assignment_expression
|
|
left: (member_expression (identifier) (property_identifier) @_decode (#eq? @_decode "decode"))
|
|
right: (function
|
|
body: (statement_block (for_statement
|
|
body: (statement_block
|
|
[
|
|
(switch_statement
|
|
value: (parenthesized_expression
|
|
(binary_expression
|
|
left: (identifier)
|
|
">>>"
|
|
right: (number) @_shift3
|
|
(#eq? @_shift3 "3")))
|
|
body:
|
|
(switch_body (switch_case
|
|
value: (number) @field_id
|
|
body: (expression_statement
|
|
(assignment_expression
|
|
left: (member_expression (identifier) (property_identifier) @field_name)
|
|
right: [
|
|
(call_expression
|
|
function: (member_expression
|
|
object: (identifier)
|
|
property: (property_identifier) @field_type))
|
|
|
|
(call_expression
|
|
function: (member_expression
|
|
object: (member_expression
|
|
object: (member_expression) @_rootakiprotocol
|
|
property: (property_identifier) @field_type
|
|
(#eq? @_rootakiprotocol "$root.Aki.Protocol"))
|
|
property: (property_identifier) @_decode_field
|
|
(#eq? @_decode_field "decode")))
|
|
])))))
|
|
|
|
(expression_statement
|
|
(ternary_expression
|
|
condition: (binary_expression
|
|
left: (binary_expression
|
|
left: (identifier)
|
|
">>>"
|
|
right: (number) @_shift3
|
|
(#eq? @_shift3 "3"))
|
|
"=="
|
|
right: (number) @field_id)
|
|
|
|
consequence: (parenthesized_expression
|
|
(assignment_expression
|
|
left: (member_expression (identifier) (property_identifier) @field_name)
|
|
right: [
|
|
(call_expression
|
|
function: (member_expression
|
|
object: (identifier)
|
|
property: (property_identifier) @field_type))
|
|
|
|
(call_expression
|
|
function: (member_expression
|
|
object: (member_expression
|
|
object: (member_expression) @_rootakiprotocol
|
|
property: (property_identifier) @field_type
|
|
(#eq? @_rootakiprotocol "$root.Aki.Protocol"))
|
|
property: (property_identifier) @_decode_field
|
|
(#eq? @_decode_field "decode")))
|
|
]))))
|
|
]
|
|
)))))))))))))
|