Merge commit '888e2e563ed3b43c417f17e57f7e29c39ce9aeea'

a_star_module
Wilfred Hughes 2021-12-31 19:37:32 +07:00
commit a510c77411
7 changed files with 235628 additions and 236288 deletions

@ -211,6 +211,7 @@ module.exports = grammar({
$.identifier,
$.splat_parameter,
$.hash_splat_parameter,
$.hash_splat_nil,
$.forward_parameter,
$.block_parameter,
$.keyword_parameter,
@ -227,6 +228,7 @@ module.exports = grammar({
'**',
field('name', optional($.identifier))
),
hash_splat_nil: $ => seq('**', 'nil'),
block_parameter: $ => seq(
'&',
field('name', $.identifier)
@ -347,11 +349,9 @@ module.exports = grammar({
case_match: $ => seq(
'case',
field('value', optional($._statement)),
field('value', $._statement),
optional($._terminator),
choice(
repeat1(field('clauses', $.in_clause)),
),
repeat1(field('clauses', $.in_clause)),
optional(field('else', $.else)),
'end'
),
@ -394,9 +394,9 @@ module.exports = grammar({
),
_array_pattern_n: $ => choice(
seq($._pattern_expr, alias(',', $.array_pattern_rest)),
seq($._pattern_expr, alias(',', $.splat_parameter)),
seq($._pattern_expr, ',', choice($._pattern_expr, $._array_pattern_n)),
seq($.array_pattern_rest, repeat(seq(',', $._pattern_expr))),
seq($.splat_parameter, repeat(seq(',', $._pattern_expr))),
),
_pattern_expr: $ => choice(
@ -424,7 +424,7 @@ module.exports = grammar({
seq(field('class', $._pattern_constant), token.immediate('('), optional($._array_pattern_body), ')')
),
_find_pattern_body: $ => seq($.array_pattern_rest, repeat1(seq(',', $._pattern_expr)), ',', $.array_pattern_rest),
_find_pattern_body: $ => seq($.splat_parameter, repeat1(seq(',', $._pattern_expr)), ',', $.splat_parameter),
find_pattern: $ => choice(
seq('[', $._find_pattern_body, ']'),
seq(field('class', $._pattern_constant), token.immediate('['), $._find_pattern_body, ']'),
@ -432,12 +432,12 @@ module.exports = grammar({
),
_hash_pattern_body: $ => choice(
seq(commaSep1($.pattern_pair), optional(',')),
seq(commaSep1($.pattern_pair), ',', $._hash_pattern_any_rest),
seq(commaSep1($.keyword_pattern), optional(',')),
seq(commaSep1($.keyword_pattern), ',', $._hash_pattern_any_rest),
$._hash_pattern_any_rest
),
pattern_pair: $ => seq(
keyword_pattern: $ => seq(
field('key',
choice(
alias($.identifier, $.hash_key_symbol),
@ -449,11 +449,7 @@ module.exports = grammar({
optional(field('value', $._pattern_expr))
),
_hash_pattern_any_rest: $ => choice($.hash_pattern_rest, $.hash_pattern_norest),
hash_pattern_rest: $ => seq('**', field('name', optional($.identifier))),
hash_pattern_norest: $ => seq('**', 'nil'),
_hash_pattern_any_rest: $ => choice($.hash_splat_parameter, $.hash_splat_nil),
hash_pattern: $ => choice(
seq('{', optional($._hash_pattern_body), '}'),
@ -466,19 +462,20 @@ module.exports = grammar({
$.array_pattern,
$.find_pattern,
$.hash_pattern,
$.parenthesized_pattern,
),
array_pattern_rest: $ => seq('*', field('name', optional($.identifier))),
parenthesized_pattern: $ => seq('(', $._pattern_expr, ')'),
_pattern_value: $ => choice(
$._pattern_primitive,
$.pattern_range,
$.pattern_variable,
alias($._pattern_range, $.range),
$.identifier,
$.variable_reference_pattern,
$._pattern_constant
),
pattern_range: $ => {
_pattern_range: $ => {
const begin = field('begin', $._pattern_primitive);
const end = field('end', $._pattern_primitive);
const operator = field('operator', choice('..', '...'));
@ -519,18 +516,14 @@ module.exports = grammar({
file: $ => '__FILE__',
encoding: $ => '__ENCODING__',
pattern_variable: $ => field('name', $.identifier),
variable_reference_pattern: $ => seq('^', field('name', $.identifier)),
_pattern_constant: $ => choice(
$.pattern_constant,
$.pattern_constant_resolution
$.constant,
alias($._pattern_constant_resolution, $.scope_resolution)
),
pattern_constant: $ => field('name', $.constant),
pattern_constant_resolution: $ => seq(
_pattern_constant_resolution: $ => seq(
optional(field('scope', $._pattern_constant)),
'::',
field('name', $.constant)

@ -64,7 +64,7 @@
(line) @constant.builtin
(encoding) @constant.builtin
(hash_pattern_norest
(hash_splat_nil
"**" @operator
) @constant.builtin

@ -649,6 +649,10 @@
"type": "SYMBOL",
"name": "hash_splat_parameter"
},
{
"type": "SYMBOL",
"name": "hash_splat_nil"
},
{
"type": "SYMBOL",
"name": "forward_parameter"
@ -721,6 +725,19 @@
}
]
},
"hash_splat_nil": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "**"
},
{
"type": "STRING",
"value": "nil"
}
]
},
"block_parameter": {
"type": "SEQ",
"members": [
@ -1545,16 +1562,8 @@
"type": "FIELD",
"name": "value",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "BLANK"
}
]
"type": "SYMBOL",
"name": "_statement"
}
},
{
@ -1570,20 +1579,15 @@
]
},
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "FIELD",
"name": "clauses",
"content": {
"type": "SYMBOL",
"name": "in_clause"
}
}
"type": "REPEAT1",
"content": {
"type": "FIELD",
"name": "clauses",
"content": {
"type": "SYMBOL",
"name": "in_clause"
}
]
}
},
{
"type": "CHOICE",
@ -1829,7 +1833,7 @@
"value": ","
},
"named": true,
"value": "array_pattern_rest"
"value": "splat_parameter"
}
]
},
@ -1864,7 +1868,7 @@
"members": [
{
"type": "SYMBOL",
"name": "array_pattern_rest"
"name": "splat_parameter"
},
{
"type": "REPEAT",
@ -2090,7 +2094,7 @@
"members": [
{
"type": "SYMBOL",
"name": "array_pattern_rest"
"name": "splat_parameter"
},
{
"type": "REPEAT1",
@ -2114,7 +2118,7 @@
},
{
"type": "SYMBOL",
"name": "array_pattern_rest"
"name": "splat_parameter"
}
]
},
@ -2207,7 +2211,7 @@
"members": [
{
"type": "SYMBOL",
"name": "pattern_pair"
"name": "keyword_pattern"
},
{
"type": "REPEAT",
@ -2220,7 +2224,7 @@
},
{
"type": "SYMBOL",
"name": "pattern_pair"
"name": "keyword_pattern"
}
]
}
@ -2249,7 +2253,7 @@
"members": [
{
"type": "SYMBOL",
"name": "pattern_pair"
"name": "keyword_pattern"
},
{
"type": "REPEAT",
@ -2262,7 +2266,7 @@
},
{
"type": "SYMBOL",
"name": "pattern_pair"
"name": "keyword_pattern"
}
]
}
@ -2285,7 +2289,7 @@
}
]
},
"pattern_pair": {
"keyword_pattern": {
"type": "SEQ",
"members": [
{
@ -2349,49 +2353,11 @@
"members": [
{
"type": "SYMBOL",
"name": "hash_pattern_rest"
"name": "hash_splat_parameter"
},
{
"type": "SYMBOL",
"name": "hash_pattern_norest"
}
]
},
"hash_pattern_rest": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "**"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "BLANK"
}
]
}
}
]
},
"hash_pattern_norest": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "**"
},
{
"type": "STRING",
"value": "nil"
"name": "hash_splat_nil"
}
]
},
@ -2499,31 +2465,27 @@
{
"type": "SYMBOL",
"name": "hash_pattern"
},
{
"type": "SYMBOL",
"name": "parenthesized_pattern"
}
]
},
"array_pattern_rest": {
"parenthesized_pattern": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "*"
"value": "("
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "BLANK"
}
]
}
"type": "SYMBOL",
"name": "_pattern_expr"
},
{
"type": "STRING",
"value": ")"
}
]
},
@ -2535,12 +2497,17 @@
"name": "_pattern_primitive"
},
{
"type": "SYMBOL",
"name": "pattern_range"
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_pattern_range"
},
"named": true,
"value": "range"
},
{
"type": "SYMBOL",
"name": "pattern_variable"
"name": "identifier"
},
{
"type": "SYMBOL",
@ -2552,7 +2519,7 @@
}
]
},
"pattern_range": {
"_pattern_range": {
"type": "CHOICE",
"members": [
{
@ -2746,14 +2713,6 @@
"type": "STRING",
"value": "__ENCODING__"
},
"pattern_variable": {
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
"variable_reference_pattern": {
"type": "SEQ",
"members": [
@ -2776,23 +2735,20 @@
"members": [
{
"type": "SYMBOL",
"name": "pattern_constant"
"name": "constant"
},
{
"type": "SYMBOL",
"name": "pattern_constant_resolution"
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_pattern_constant_resolution"
},
"named": true,
"value": "scope_resolution"
}
]
},
"pattern_constant": {
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "constant"
}
},
"pattern_constant_resolution": {
"_pattern_constant_resolution": {
"type": "SEQ",
"members": [
{

@ -160,11 +160,11 @@
"named": true,
"subtypes": [
{
"type": "pattern_constant",
"type": "constant",
"named": true
},
{
"type": "pattern_constant_resolution",
"type": "scope_resolution",
"named": true
}
]
@ -212,11 +212,15 @@
"named": true
},
{
"type": "pattern_range",
"type": "identifier",
"named": true
},
{
"type": "parenthesized_pattern",
"named": true
},
{
"type": "pattern_variable",
"type": "range",
"named": true
},
{
@ -705,28 +709,12 @@
"named": true
},
{
"type": "array_pattern_rest",
"type": "splat_parameter",
"named": true
}
]
}
},
{
"type": "array_pattern_rest",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
}
}
},
{
"type": "as_pattern",
"named": true,
@ -1100,6 +1088,10 @@
"type": "forward_parameter",
"named": true
},
{
"type": "hash_splat_nil",
"named": true
},
{
"type": "hash_splat_parameter",
"named": true
@ -1260,7 +1252,7 @@
},
"value": {
"multiple": false,
"required": false,
"required": true,
"types": [
{
"type": "_statement",
@ -1443,6 +1435,10 @@
"type": "forward_parameter",
"named": true
},
{
"type": "hash_splat_nil",
"named": true
},
{
"type": "hash_splat_parameter",
"named": true
@ -1733,7 +1729,7 @@
"named": true
},
{
"type": "array_pattern_rest",
"type": "splat_parameter",
"named": true
}
]
@ -1828,41 +1824,20 @@
"required": false,
"types": [
{
"type": "hash_pattern_norest",
"type": "hash_splat_nil",
"named": true
},
{
"type": "hash_pattern_rest",
"type": "hash_splat_parameter",
"named": true
},
{
"type": "pattern_pair",
"type": "keyword_pattern",
"named": true
}
]
}
},
{
"type": "hash_pattern_norest",
"named": true,
"fields": {}
},
{
"type": "hash_pattern_rest",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
}
}
},
{
"type": "hash_splat_argument",
"named": true,
@ -1878,6 +1853,11 @@
]
}
},
{
"type": "hash_splat_nil",
"named": true,
"fields": {}
},
{
"type": "hash_splat_parameter",
"named": true,
@ -2103,6 +2083,36 @@
}
}
},
{
"type": "keyword_pattern",
"named": true,
"fields": {
"key": {
"multiple": false,
"required": true,
"types": [
{
"type": "hash_key_symbol",
"named": true
},
{
"type": "string",
"named": true
}
]
},
"value": {
"multiple": false,
"required": false,
"types": [
{
"type": "_pattern_expr",
"named": true
}
]
}
}
},
{
"type": "lambda",
"named": true,
@ -2153,6 +2163,10 @@
"type": "forward_parameter",
"named": true
},
{
"type": "hash_splat_nil",
"named": true
},
{
"type": "hash_splat_parameter",
"named": true
@ -2275,6 +2289,10 @@
"type": "forward_parameter",
"named": true
},
{
"type": "hash_splat_nil",
"named": true
},
{
"type": "hash_splat_parameter",
"named": true
@ -2508,6 +2526,21 @@
}
}
},
{
"type": "parenthesized_pattern",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "_pattern_expr",
"named": true
}
]
}
},
{
"type": "parenthesized_statements",
"named": true,
@ -2546,134 +2579,6 @@
]
}
},
{
"type": "pattern_constant",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "constant",
"named": true
}
]
}
}
},
{
"type": "pattern_constant_resolution",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "constant",
"named": true
}
]
},
"scope": {
"multiple": false,
"required": false,
"types": [
{
"type": "_pattern_constant",
"named": true
}
]
}
}
},
{
"type": "pattern_pair",
"named": true,
"fields": {
"key": {
"multiple": false,
"required": true,
"types": [
{
"type": "hash_key_symbol",
"named": true
},
{
"type": "string",
"named": true
}
]
},
"value": {
"multiple": false,
"required": false,
"types": [
{
"type": "_pattern_expr",
"named": true
}
]
}
}
},
{
"type": "pattern_range",
"named": true,
"fields": {
"begin": {
"multiple": false,
"required": false,
"types": [
{
"type": "_pattern_primitive",
"named": true
}
]
},
"end": {
"multiple": false,
"required": false,
"types": [
{
"type": "_pattern_primitive",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": "..",
"named": false
},
{
"type": "...",
"named": false
}
]
}
}
},
{
"type": "pattern_variable",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
}
},
{
"type": "program",
"named": true,
@ -2708,6 +2613,10 @@
{
"type": "_arg",
"named": true
},
{
"type": "_pattern_primitive",
"named": true
}
]
},
@ -2718,6 +2627,10 @@
{
"type": "_arg",
"named": true
},
{
"type": "_pattern_primitive",
"named": true
}
]
},
@ -2946,6 +2859,10 @@
"multiple": false,
"required": false,
"types": [
{
"type": "_pattern_constant",
"named": true
},
{
"type": "_primary",
"named": true

File diff suppressed because it is too large Load Diff

@ -246,6 +246,9 @@ end
def foo(name:, **)
end
def foo(x, **nil)
end
def foo(&block)
end
@ -265,6 +268,7 @@ end
(method (identifier) (method_parameters (identifier) (splat_parameter (identifier)) (identifier)))
(method (identifier) (method_parameters (hash_splat_parameter (identifier))))
(method (identifier) (method_parameters (keyword_parameter (identifier)) (hash_splat_parameter)))
(method (identifier) (method_parameters (identifier) (hash_splat_nil)))
(method (identifier) (method_parameters (block_parameter (identifier))))
(method (identifier) (method_parameters (forward_parameter))
(call (super) (argument_list (forward_argument)))

@ -69,12 +69,12 @@ end
(else (false)))
(case_match (identifier)
(in_clause
(pattern_variable (identifier))
(identifier)
(unless_guard (binary (identifier) (integer)))
(then (true))
)
(in_clause
(pattern_variable (identifier))
(identifier)
(if_guard (binary (identifier) (integer)))
(then (true))
)
@ -83,43 +83,43 @@ end
(case_match (identifier)
(in_clause (integer))
(in_clause (array_pattern (integer) (array_pattern_rest)))
(in_clause (array_pattern (integer) (splat_parameter)))
(in_clause (array_pattern (integer) (integer)))
(in_clause (array_pattern (integer) (integer) (array_pattern_rest)))
(in_clause (array_pattern (integer) (integer) (splat_parameter)))
(in_clause (array_pattern (integer) (integer) (integer)))
(in_clause (array_pattern (integer) (integer) (integer) (array_pattern_rest)))
(in_clause (array_pattern (integer) (integer) (integer) (array_pattern_rest)))
(in_clause (array_pattern (integer) (array_pattern_rest (identifier)) (integer)))
(in_clause (array_pattern (array_pattern_rest)))
(in_clause (array_pattern (array_pattern_rest) (integer) (integer)))
(in_clause (find_pattern (array_pattern_rest) (integer) (array_pattern_rest)))
(in_clause (find_pattern (array_pattern_rest (identifier)) (integer) (array_pattern_rest (identifier))))
(in_clause (hash_pattern (pattern_pair (hash_key_symbol))))
(in_clause (hash_pattern (pattern_pair (hash_key_symbol) (integer))))
(in_clause (hash_pattern (pattern_pair (hash_key_symbol) (integer))))
(in_clause (hash_pattern (pattern_pair (hash_key_symbol) (integer)) (pattern_pair (hash_key_symbol)) (hash_pattern_rest)))
(in_clause (hash_pattern (pattern_pair (hash_key_symbol) (integer)) (pattern_pair (hash_key_symbol)) (hash_pattern_rest (identifier))))
(in_clause (hash_pattern (pattern_pair (hash_key_symbol) (integer)) (pattern_pair (hash_key_symbol)) (hash_pattern_norest)))
(in_clause (hash_pattern (hash_pattern_norest)))
(in_clause (array_pattern (integer) (integer) (integer) (splat_parameter)))
(in_clause (array_pattern (integer) (integer) (integer) (splat_parameter)))
(in_clause (array_pattern (integer) (splat_parameter (identifier)) (integer)))
(in_clause (array_pattern (splat_parameter)))
(in_clause (array_pattern (splat_parameter) (integer) (integer)))
(in_clause (find_pattern (splat_parameter) (integer) (splat_parameter)))
(in_clause (find_pattern (splat_parameter (identifier)) (integer) (splat_parameter (identifier))))
(in_clause (hash_pattern (keyword_pattern (hash_key_symbol))))
(in_clause (hash_pattern (keyword_pattern (hash_key_symbol) (integer))))
(in_clause (hash_pattern (keyword_pattern (hash_key_symbol) (integer))))
(in_clause (hash_pattern (keyword_pattern (hash_key_symbol) (integer)) (keyword_pattern (hash_key_symbol)) (hash_splat_parameter)))
(in_clause (hash_pattern (keyword_pattern (hash_key_symbol) (integer)) (keyword_pattern (hash_key_symbol)) (hash_splat_parameter (identifier))))
(in_clause (hash_pattern (keyword_pattern (hash_key_symbol) (integer)) (keyword_pattern (hash_key_symbol)) (hash_splat_nil)))
(in_clause (hash_pattern (hash_splat_nil)))
(in_clause (array_pattern (integer)))
(in_clause (array_pattern (integer) (array_pattern_rest)))
(in_clause (array_pattern (integer) (splat_parameter)))
(in_clause (array_pattern (integer) (integer)))
(in_clause (array_pattern (integer) (integer) (array_pattern_rest)))
(in_clause (array_pattern (integer) (integer) (splat_parameter)))
(in_clause (array_pattern (integer) (integer) (integer)))
(in_clause (array_pattern (integer) (integer) (integer) (array_pattern_rest)))
(in_clause (array_pattern (integer) (integer) (integer) (array_pattern_rest)))
(in_clause (array_pattern (integer) (array_pattern_rest (identifier)) (integer)))
(in_clause (array_pattern (array_pattern_rest)))
(in_clause (array_pattern (array_pattern_rest) (integer) (integer)))
(in_clause (find_pattern (array_pattern_rest) (integer) (array_pattern_rest)))
(in_clause (find_pattern (array_pattern_rest (identifier)) (integer) (array_pattern_rest (identifier))))
(in_clause (hash_pattern (pattern_pair (hash_key_symbol))))
(in_clause (hash_pattern (pattern_pair (hash_key_symbol) (integer))))
(in_clause (hash_pattern (pattern_pair (hash_key_symbol) (integer))))
(in_clause (hash_pattern (pattern_pair (hash_key_symbol) (integer)) (pattern_pair (hash_key_symbol)) (hash_pattern_rest)))
(in_clause (hash_pattern (pattern_pair (hash_key_symbol) (integer)) (pattern_pair (hash_key_symbol)) (hash_pattern_rest (identifier))))
(in_clause (hash_pattern (pattern_pair (hash_key_symbol) (integer)) (pattern_pair (hash_key_symbol)) (hash_pattern_norest)))
(in_clause (hash_pattern (hash_pattern_norest)))
(in_clause (array_pattern (integer) (integer) (integer) (splat_parameter)))
(in_clause (array_pattern (integer) (integer) (integer) (splat_parameter)))
(in_clause (array_pattern (integer) (splat_parameter (identifier)) (integer)))
(in_clause (array_pattern (splat_parameter)))
(in_clause (array_pattern (splat_parameter) (integer) (integer)))
(in_clause (find_pattern (splat_parameter) (integer) (splat_parameter)))
(in_clause (find_pattern (splat_parameter (identifier)) (integer) (splat_parameter (identifier))))
(in_clause (hash_pattern (keyword_pattern (hash_key_symbol))))
(in_clause (hash_pattern (keyword_pattern (hash_key_symbol) (integer))))
(in_clause (hash_pattern (keyword_pattern (hash_key_symbol) (integer))))
(in_clause (hash_pattern (keyword_pattern (hash_key_symbol) (integer)) (keyword_pattern (hash_key_symbol)) (hash_splat_parameter)))
(in_clause (hash_pattern (keyword_pattern (hash_key_symbol) (integer)) (keyword_pattern (hash_key_symbol)) (hash_splat_parameter (identifier))))
(in_clause (hash_pattern (keyword_pattern (hash_key_symbol) (integer)) (keyword_pattern (hash_key_symbol)) (hash_splat_nil)))
(in_clause (hash_pattern (hash_splat_nil)))
(in_clause (hash_pattern))
(in_clause (array_pattern))
)
@ -145,7 +145,7 @@ case expr
in Foo
in Foo::Bar
in ::Foo::Bar
in nil | self | true | false | __LINE__ | __FILE__ | __ENCODING__
in (nil | self | true | false | __LINE__ | __FILE__ | __ENCODING__)
in -> x { x == 10 }
in :foo
in :"foo bar"
@ -158,35 +158,37 @@ end
(case_match (identifier)
(in_clause (integer))
(in_clause (variable_reference_pattern (identifier)))
(in_clause (pattern_variable (identifier)))
(in_clause (identifier))
(in_clause (string (string_content)))
(in_clause (string_array (bare_string (string_content)) (bare_string (string_content))))
(in_clause (symbol_array (bare_symbol (string_content)) (bare_symbol (string_content))))
(in_clause (regex (string_content)))
(in_clause (pattern_range (integer) (integer)))
(in_clause (pattern_range (integer)))
(in_clause (pattern_range (integer)))
(in_clause (range (integer) (integer)))
(in_clause (range (integer)))
(in_clause (range (integer)))
(in_clause (as_pattern (integer) (identifier)))
(in_clause
(alternative_pattern
(integer)
(variable_reference_pattern (identifier))
(pattern_variable (identifier))
(identifier)
(string (string_content))
)
)
(in_clause (pattern_constant (constant)))
(in_clause (pattern_constant_resolution (pattern_constant (constant)) (constant)))
(in_clause (pattern_constant_resolution (pattern_constant_resolution (constant)) (constant)))
(in_clause (constant))
(in_clause (scope_resolution (constant) (constant)))
(in_clause (scope_resolution (scope_resolution (constant)) (constant)))
(in_clause
(alternative_pattern
(nil)
(self)
(true)
(false)
(line)
(file)
(encoding)
(parenthesized_pattern
(alternative_pattern
(nil)
(self)
(true)
(false)
(line)
(file)
(encoding)
)
)
)
(in_clause (lambda (lambda_parameters (identifier)) (block (binary (identifier) (integer)))))
@ -219,19 +221,19 @@ end
(program
(case_match (identifier)
(in_clause (array_pattern))
(in_clause (array_pattern (pattern_variable (identifier))))
(in_clause (array_pattern (pattern_variable (identifier)) (array_pattern_rest)))
(in_clause (array_pattern (pattern_constant_resolution (pattern_constant (constant)) (constant))))
(in_clause (array_pattern (pattern_constant (constant))))
(in_clause (array_pattern (pattern_constant (constant)) (array_pattern_rest)))
(in_clause (array_pattern (identifier)))
(in_clause (array_pattern (identifier) (splat_parameter)))
(in_clause (array_pattern (scope_resolution (constant) (constant))))
(in_clause (array_pattern (constant)))
(in_clause (array_pattern (constant) (splat_parameter)))
(in_clause
(array_pattern
(pattern_constant (constant))
(pattern_variable (identifier))
(pattern_variable (identifier))
(array_pattern_rest (identifier))
(pattern_variable (identifier))
(pattern_variable (identifier))
(constant)
(identifier)
(identifier)
(splat_parameter (identifier))
(identifier)
(identifier)
)
)
)
@ -252,15 +254,15 @@ end
(program
(case_match (identifier)
(in_clause (find_pattern (array_pattern_rest) (pattern_variable (identifier)) (array_pattern_rest)))
(in_clause (find_pattern (array_pattern_rest (identifier)) (integer) (integer) (array_pattern_rest (identifier))))
(in_clause (find_pattern (splat_parameter) (identifier) (splat_parameter)))
(in_clause (find_pattern (splat_parameter (identifier)) (integer) (integer) (splat_parameter (identifier))))
(in_clause (find_pattern
(pattern_constant_resolution (pattern_constant (constant)) (constant))
(array_pattern_rest)
(scope_resolution (constant) (constant))
(splat_parameter)
(integer)
(array_pattern_rest))
(splat_parameter))
)
(in_clause (find_pattern (pattern_constant (constant)) (array_pattern_rest) (pattern_constant (constant)) (array_pattern_rest)))
(in_clause (find_pattern (constant) (splat_parameter) (constant) (splat_parameter)))
)
)
@ -282,19 +284,19 @@ end
(program (case_match (identifier)
(in_clause (hash_pattern))
(in_clause (hash_pattern (pattern_pair (hash_key_symbol))))
(in_clause (hash_pattern (keyword_pattern (hash_key_symbol))))
(in_clause (hash_pattern
(pattern_constant_resolution (pattern_constant (constant)) (constant))
(pattern_pair (hash_key_symbol) (integer))
(scope_resolution (constant) (constant))
(keyword_pattern (hash_key_symbol) (integer))
))
(in_clause (hash_pattern
(pattern_constant_resolution (pattern_constant (constant)) (constant))
(pattern_pair (hash_key_symbol) (integer))
(pattern_pair (hash_key_symbol))
(hash_pattern_rest (identifier))
(scope_resolution (constant) (constant))
(keyword_pattern (hash_key_symbol) (integer))
(keyword_pattern (hash_key_symbol))
(hash_splat_parameter (identifier))
))
(in_clause (hash_pattern (pattern_constant (constant)) (pattern_pair (hash_key_symbol))))
(in_clause (hash_pattern (pattern_constant (constant)) (hash_pattern_rest)))
(in_clause (hash_pattern (pattern_constant (constant)) (pattern_pair (hash_key_symbol) (integer)) (hash_pattern_norest)))
(in_clause (hash_pattern (constant) (keyword_pattern (hash_key_symbol))))
(in_clause (hash_pattern (constant) (hash_splat_parameter)))
(in_clause (hash_pattern (constant) (keyword_pattern (hash_key_symbol) (integer)) (hash_splat_nil)))
)
)