77 lines
3.9 KiB
Scheme
77 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")))
|
||
|
]))))
|
||
|
]
|
||
|
)))))))))))))
|