@willbooster/tree-sitter-c-sharp 12.0.0 → 14.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -41,7 +41,7 @@ The contextual type names `nint` and `nuint` use `identifier` nodes.
41
41
 
42
42
  The npm package ships `tree-sitter-c_sharp.wasm` for
43
43
  [@willbooster/web-tree-sitter](https://www.npmjs.com/package/@willbooster/web-tree-sitter), which runs in Node.js, Bun,
44
- browsers, and Cloudflare Workers. The parser uses WillBooster ABI 7 and loads only with that runtime. Use version 9.0.0 or later within major version 9; upstream's runtime rejects it. Install the runtime alongside the grammar when using
44
+ browsers, and Cloudflare Workers. The parser uses WillBooster ABI 7 and loads only with that runtime. Use version 10.0.2 or later within major version 10; upstream's runtime rejects it. Install the runtime alongside the grammar when using
45
45
  the Wasm parser; it remains an optional peer for consumers that only use the grammar source or queries.
46
46
 
47
47
  In Node.js and Bun, load it from the package:
@@ -89,11 +89,11 @@ Their external tokens and serialized scanner state must match.
89
89
 
90
90
  In Rust, depend on the [crate](https://crates.io/crates/willbooster-tree-sitter-c-sharp) and on
91
91
  [willbooster-tree-sitter](https://crates.io/crates/willbooster-tree-sitter), the runtime this package is tested and
92
- fuzzed with. Use runtime 9.0.0 or later within major version 9:
92
+ fuzzed with. Use runtime 10.0.2 or later within major version 10:
93
93
 
94
94
  ```toml
95
95
  [dependencies]
96
- tree-sitter = { package = "willbooster-tree-sitter", version = "9.0.0" }
96
+ tree-sitter = { package = "willbooster-tree-sitter", version = "10.0.2" }
97
97
  tree-sitter-c-sharp = { package = "willbooster-tree-sitter-c-sharp", version = "11" }
98
98
  ```
99
99
 
package/grammar.js CHANGED
@@ -53,6 +53,48 @@ module.exports = grammar({
53
53
  name: 'c_sharp',
54
54
 
55
55
  conflicts: ($) => [
56
+ [$._simple_name, $._expression_simple_name, $._pattern_simple_identifier_name, $._ambiguous_cast_qualified_name],
57
+ [$._expression_simple_name, $._ambiguous_cast_qualified_name],
58
+ [$._simple_name, $._expression_simple_name, $._ambiguous_cast_qualified_name],
59
+ [$.parameter, $._expression_simple_name, $._ambiguous_cast_name],
60
+ [$.parameter, $._simple_name, $._expression_simple_name, $._ambiguous_cast_name],
61
+ [$._expression_simple_name, $._ambiguous_cast_name],
62
+ [$._simple_name, $._expression_simple_name, $._ambiguous_cast_name],
63
+ [$._simple_name, $.generic_name, $._expression_generic_name, $._pattern_simple_identifier_name],
64
+ [$._expression_simple_name, $.generic_name, $._expression_generic_name, $._pattern_simple_identifier_name],
65
+ [
66
+ $._simple_name,
67
+ $._expression_simple_name,
68
+ $.generic_name,
69
+ $._expression_generic_name,
70
+ $._pattern_simple_identifier_name,
71
+ ],
72
+ [$._expression_simple_name, $._pattern_simple_identifier_name],
73
+ [$._simple_name, $._expression_simple_name, $._pattern_simple_identifier_name],
74
+ [$.generic_name, $._expression_generic_name, $._pattern_simple_identifier_name],
75
+ [$._simple_name, $.generic_name, $._expression_generic_name],
76
+ [$._expression_simple_name, $._expression_generic_name],
77
+ [$._simple_name, $._expression_simple_name, $.generic_name, $._expression_generic_name],
78
+ [$._expression_simple_name, $.subpattern],
79
+ [$._expression_simple_name, $.parameter],
80
+ [$._simple_name, $._expression_simple_name, $.parameter],
81
+
82
+ [$.type_argument_list, $._expression_type_argument_list],
83
+ [$._definite_expression_argument_type, $.type],
84
+ [$._definite_expression_pointer_type, $._pointer_base_type],
85
+ [$._name, $._nongeneric_expression_argument_type],
86
+ [$._name, $._other_expression_pointer_type],
87
+ [$._nongeneric_expression_argument_type, $.type],
88
+ [$._other_expression_pointer_type, $._pointer_base_type],
89
+ [$._simple_name, $._nongeneric_expression_argument_type],
90
+ [$._simple_name, $._nongeneric_expression_qualified_name],
91
+ [$._simple_name, $._other_expression_pointer_type],
92
+ [$.type_argument_list, $._method_expression_arguments],
93
+ [$._ambiguous_expression_arguments, $._method_expression_arguments],
94
+ [$._primary_no_conditional_access_expression, $._range_cast_type, $._definite_cast_name],
95
+ [$._name, $._primary_no_conditional_access_expression, $._range_cast_type, $._definite_cast_name],
96
+ [$._simple_name, $._expression_simple_name],
97
+ [$.generic_name, $._expression_simple_name, $._expression_generic_name],
56
98
  [$.list_pattern],
57
99
  [$._conditional_binding_receiver, $._binding_generic_suppression_expression],
58
100
  [$._member_conditional_binding_receiver, $._member_binding_generic_suppression_expression],
@@ -90,20 +132,14 @@ module.exports = grammar({
90
132
  [$._definite_cast_type, $._range_cast_type],
91
133
  [$.type, $._definite_cast_type, $._range_cast_type],
92
134
  [$._pattern_type, $._definite_cast_type, $._range_cast_type],
93
- [$._definite_cast_name, $._range_cast_type],
94
- [$._name, $._definite_cast_name, $._range_cast_type],
95
135
  [$.array_rank_specifier, $._omitted_array_rank_specifier],
96
136
  [$._pattern_parenthesized_expression, $.constant_pattern, $.expression],
97
137
  [$._pattern_parenthesized_expression, $.constant_pattern],
98
- [$._simple_name, $._pattern_simple_identifier_name, $._ambiguous_cast_qualified_name],
99
- [$._simple_name, $._ambiguous_cast_qualified_name],
100
138
  [$._simple_name, $._definite_cast_qualified_name],
101
139
  [$.positional_pattern_clause, $._untyped_positional_pattern_clause],
102
140
  [$._parenthesized_pattern_with_designation, $.subpattern],
103
141
  [$._pattern_type, $._definite_cast_type],
104
142
  [$.type, $._definite_cast_type],
105
- [$.parameter, $._simple_name, $._ambiguous_cast_name],
106
- [$._simple_name, $._ambiguous_cast_name],
107
143
  [$._simple_name, $._definite_cast_name],
108
144
  [$._name, $._definite_cast_name],
109
145
  [$._object_initializer_expression, $.initializer_expression],
@@ -132,10 +168,7 @@ module.exports = grammar({
132
168
  [$._pattern_type, $._pointer_base_type],
133
169
  [$._pattern_member_access_expression, $._pattern_generic_member_expression],
134
170
  [$._simple_name, $._pattern_simple_generic_name],
135
- [$._simple_name, $.generic_name, $._pattern_simple_identifier_name],
136
171
  [$._simple_name, $._pattern_simple_identifier_name],
137
- [$.generic_name, $._pattern_simple_identifier_name],
138
- [$._pattern_non_name_member_access_expression, $.member_access_expression],
139
172
  [$._pattern_unary_expression, $._unary_expression],
140
173
  [$._pattern_primary_expression, $._primary_expression],
141
174
  [$._pattern_primary_expression, $._primary_no_conditional_access_expression],
@@ -181,7 +214,6 @@ module.exports = grammar({
181
214
  [$.modifier, $._constructor_declaration_initializer, $._reserved_identifier],
182
215
  [$._simple_name, $.generic_name],
183
216
  [$._simple_name, $.type_parameter],
184
- [$._simple_name, $.subpattern],
185
217
  [$.tuple_element, $.type_pattern],
186
218
  [$.type_pattern, $.declaration_pattern],
187
219
  [$.tuple_element, $.using_variable_declarator],
@@ -194,7 +226,6 @@ module.exports = grammar({
194
226
  [$.type, $._array_base_type, $.array_creation_expression],
195
227
  [$.type, $.array_creation_expression],
196
228
  [$.type, $._pointer_base_type],
197
- [$.qualified_name, $.member_access_expression],
198
229
  [$.qualified_name, $.explicit_interface_specifier],
199
230
  [$._array_base_type, $.stackalloc_expression],
200
231
  [$.constant_pattern, $._expression_statement_expression],
@@ -314,6 +345,8 @@ module.exports = grammar({
314
345
  sym('_interpolation_format_colon'),
315
346
  sym('_pragma_boundary'),
316
347
  sym('_pragma_text'),
348
+ sym('_expression_generic_end'),
349
+ sym('_definite_expression_generic_end'),
317
350
  ],
318
351
 
319
352
  extras: ($) => [
@@ -347,6 +380,7 @@ module.exports = grammar({
347
380
 
348
381
  precedences: ($) => [
349
382
  [$._anonymous_object_member_declarator, $._simple_name],
383
+ [$._anonymous_object_member_declarator, $._expression_simple_name],
350
384
  [$.block, $.initializer_expression],
351
385
  ],
352
386
 
@@ -361,6 +395,11 @@ module.exports = grammar({
361
395
  $._ambiguous_cast_type,
362
396
  $._definite_cast_type,
363
397
  $._range_cast_type,
398
+ $._definite_expression_type_argument,
399
+ $._ambiguous_expression_type_argument,
400
+ $._other_expression_type_argument,
401
+ $._nongeneric_expression_type_argument,
402
+ $._method_expression_type_argument,
364
403
  $._is_pattern,
365
404
  $._nonconstant_pattern,
366
405
  ],
@@ -579,7 +618,12 @@ module.exports = grammar({
579
618
  )
580
619
  ),
581
620
 
582
- type_parameter_list: ($) => seq('<', commaSep1($.type_parameter), '>'),
621
+ type_parameter_list: ($) =>
622
+ seq(
623
+ '<',
624
+ commaSep1($.type_parameter),
625
+ choice('>', alias(sym('_expression_generic_end'), '>'), alias(sym('_definite_expression_generic_end'), '>'))
626
+ ),
583
627
 
584
628
  type_parameter: ($) => seq(repeat($._attribute_list), optional(choice('in', 'out')), field('name', $.identifier)),
585
629
 
@@ -980,7 +1024,149 @@ module.exports = grammar({
980
1024
 
981
1025
  generic_name: ($) => prec.dynamic(1, seq($.identifier, $.type_argument_list)),
982
1026
 
983
- type_argument_list: ($) => seq('<', choice(repeat(','), commaSep1($.type)), '>'),
1027
+ type_argument_list: ($) =>
1028
+ seq(
1029
+ '<',
1030
+ choice(repeat(','), commaSep1($.type)),
1031
+ choice('>', alias(sym('_expression_generic_end'), '>'), alias(sym('_definite_expression_generic_end'), '>'))
1032
+ ),
1033
+
1034
+ _expression_simple_name: ($) => choice($.identifier, alias($._expression_generic_name, $.generic_name)),
1035
+
1036
+ _expression_generic_name: ($) =>
1037
+ prec.dynamic(1, seq($.identifier, alias($._expression_type_argument_list, $.type_argument_list))),
1038
+
1039
+ _expression_type_argument_list: ($) =>
1040
+ seq(
1041
+ '<',
1042
+ choice(
1043
+ seq(choice(repeat(','), commaSep1($.type)), alias(sym('_expression_generic_end'), '>')),
1044
+ seq(repeat(','), alias(sym('_definite_expression_generic_end'), '>')),
1045
+ seq(
1046
+ repeat(seq(alias($._other_expression_type_argument, $.type), ',')),
1047
+ choice(
1048
+ alias($._definite_expression_type_argument, $.type),
1049
+ seq(alias($._ambiguous_expression_type_argument, $.type), ',', $.type)
1050
+ ),
1051
+ repeat(seq(',', $.type)),
1052
+ alias(sym('_definite_expression_generic_end'), '>')
1053
+ )
1054
+ )
1055
+ ),
1056
+
1057
+ _definite_expression_type_argument: ($) => $._definite_expression_argument_type,
1058
+
1059
+ _ambiguous_expression_type_argument: ($) => $._ambiguous_expression_argument_type,
1060
+
1061
+ _other_expression_type_argument: ($) => $._other_expression_argument_type,
1062
+
1063
+ _nongeneric_expression_type_argument: ($) => $._nongeneric_expression_argument_type,
1064
+
1065
+ _method_expression_type_argument: ($) => $._method_expression_argument_type,
1066
+
1067
+ _definite_expression_argument_type: ($) =>
1068
+ choice(
1069
+ $.predefined_type,
1070
+ $.nullable_type,
1071
+ $.function_pointer_type,
1072
+ alias($._omitted_cast_array_type, $.array_type),
1073
+ alias($._definite_expression_pointer_type, $.pointer_type)
1074
+ ),
1075
+
1076
+ _definite_expression_pointer_type: ($) =>
1077
+ seq(
1078
+ field(
1079
+ 'type',
1080
+ choice(
1081
+ $.predefined_type,
1082
+ $.nullable_type,
1083
+ $.function_pointer_type,
1084
+ alias($._definite_expression_pointer_type, $.pointer_type),
1085
+ alias($._method_expression_generic_name, $.generic_name),
1086
+ alias($._method_expression_qualified_name, $.qualified_name)
1087
+ )
1088
+ ),
1089
+ '*'
1090
+ ),
1091
+
1092
+ _ambiguous_expression_argument_type: ($) =>
1093
+ choice(
1094
+ alias($._ambiguous_expression_generic_name, $.generic_name),
1095
+ alias($._ambiguous_expression_qualified_name, $.qualified_name)
1096
+ ),
1097
+
1098
+ _ambiguous_expression_generic_name: ($) =>
1099
+ prec.dynamic(1, seq($.identifier, alias($._ambiguous_expression_arguments, $.type_argument_list))),
1100
+
1101
+ _ambiguous_expression_arguments: ($) =>
1102
+ seq(
1103
+ '<',
1104
+ commaSep1(alias($._nongeneric_expression_type_argument, $.type)),
1105
+ choice('>', alias(sym('_expression_generic_end'), '>'), alias(sym('_definite_expression_generic_end'), '>'))
1106
+ ),
1107
+
1108
+ _ambiguous_expression_qualified_name: ($) =>
1109
+ seq(field('qualifier', $._name), '.', field('name', alias($._ambiguous_expression_generic_name, $.generic_name))),
1110
+
1111
+ _other_expression_argument_type: ($) =>
1112
+ choice($._nongeneric_expression_argument_type, $._method_expression_argument_type),
1113
+
1114
+ _nongeneric_expression_argument_type: ($) =>
1115
+ choice(
1116
+ $.identifier,
1117
+ alias($._nongeneric_expression_qualified_name, $.qualified_name),
1118
+ $.alias_qualified_name,
1119
+ $.tuple_type,
1120
+ alias($._other_expression_pointer_type, $.pointer_type)
1121
+ ),
1122
+
1123
+ _method_expression_argument_type: ($) =>
1124
+ choice(
1125
+ alias($._method_expression_generic_name, $.generic_name),
1126
+ alias($._method_expression_qualified_name, $.qualified_name)
1127
+ ),
1128
+
1129
+ _nongeneric_expression_qualified_name: ($) => seq(field('qualifier', $._name), '.', field('name', $.identifier)),
1130
+
1131
+ _method_expression_generic_name: ($) =>
1132
+ prec.dynamic(1, seq($.identifier, alias($._method_expression_arguments, $.type_argument_list))),
1133
+
1134
+ _method_expression_arguments: ($) =>
1135
+ seq(
1136
+ '<',
1137
+ choice(
1138
+ repeat(','),
1139
+ seq(
1140
+ repeat(seq(alias($._nongeneric_expression_type_argument, $.type), ',')),
1141
+ choice(
1142
+ alias($._definite_expression_type_argument, $.type),
1143
+ alias($._ambiguous_expression_type_argument, $.type),
1144
+ alias($._method_expression_type_argument, $.type)
1145
+ ),
1146
+ repeat(seq(',', $.type))
1147
+ )
1148
+ ),
1149
+ choice('>', alias(sym('_expression_generic_end'), '>'), alias(sym('_definite_expression_generic_end'), '>'))
1150
+ ),
1151
+
1152
+ _method_expression_qualified_name: ($) =>
1153
+ seq(field('qualifier', $._name), '.', field('name', alias($._method_expression_generic_name, $.generic_name))),
1154
+
1155
+ _other_expression_pointer_type: ($) =>
1156
+ seq(
1157
+ field(
1158
+ 'type',
1159
+ choice(
1160
+ $.identifier,
1161
+ alias($._nongeneric_expression_qualified_name, $.qualified_name),
1162
+ $.alias_qualified_name,
1163
+ $.tuple_type,
1164
+ $._ambiguous_expression_argument_type,
1165
+ alias($._other_expression_pointer_type, $.pointer_type)
1166
+ )
1167
+ ),
1168
+ '*'
1169
+ ),
984
1170
 
985
1171
  type: ($) => typeAlternatives($),
986
1172
 
@@ -1688,11 +1874,15 @@ module.exports = grammar({
1688
1874
  ),
1689
1875
 
1690
1876
  _primary_no_conditional_access_expression: ($) =>
1691
- primaryAtoms($, { name: $._simple_name, member: $.member_access_expression, collection: true }),
1877
+ primaryAtoms($, {
1878
+ name: choice($._expression_simple_name, $.alias_qualified_name),
1879
+ member: $.member_access_expression,
1880
+ collection: true,
1881
+ }),
1692
1882
 
1693
1883
  _conditional_access_receiver: ($) =>
1694
1884
  primaryAtoms($, {
1695
- name: $._simple_name,
1885
+ name: choice($._expression_simple_name, $.alias_qualified_name),
1696
1886
  member: $.member_access_expression,
1697
1887
  collection: true,
1698
1888
  element: $.element_access_expression,
@@ -1705,7 +1895,7 @@ module.exports = grammar({
1705
1895
 
1706
1896
  _definite_conditional_access_receiver: ($) =>
1707
1897
  primaryAtoms($, {
1708
- name: $._simple_name,
1898
+ name: choice($._expression_simple_name, $.alias_qualified_name),
1709
1899
  member: $.member_access_expression,
1710
1900
  collection: true,
1711
1901
  element: $.element_access_expression,
@@ -2206,7 +2396,7 @@ module.exports = grammar({
2206
2396
 
2207
2397
  member_access_expression: ($) => memberAccessExpression($, choice($._postfix_receiver, $.predefined_type, $._name)),
2208
2398
 
2209
- member_binding_expression: ($) => seq('.', field('name', $._simple_name)),
2399
+ member_binding_expression: ($) => seq('.', field('name', $._expression_simple_name)),
2210
2400
 
2211
2401
  object_creation_expression: ($) =>
2212
2402
  prec.right(
@@ -2916,13 +3106,13 @@ function conditionalDirective(command, $, ...content) {
2916
3106
  }
2917
3107
 
2918
3108
  /**
2919
- * @param {import('@willbooster/web-tree-sitter/dsl').GrammarSymbols<'_simple_name'>} $
3109
+ * @param {import('@willbooster/web-tree-sitter/dsl').GrammarSymbols<'_expression_simple_name'>} $
2920
3110
  * @param {import('@willbooster/web-tree-sitter/dsl').Rule} receiver
2921
3111
  * @param {import('@willbooster/web-tree-sitter/dsl').Rule} [name]
2922
3112
  * @param {import('@willbooster/web-tree-sitter/dsl').RuleOrLiteral} [operator]
2923
3113
  * @returns {import('@willbooster/web-tree-sitter/dsl').Rule}
2924
3114
  */
2925
- function memberAccessExpression($, receiver, name = $._simple_name, operator = choice('.', '->')) {
3115
+ function memberAccessExpression($, receiver, name = $._expression_simple_name, operator = choice('.', '->')) {
2926
3116
  return prec(PREC.DOT, seq(field('expression', receiver), operator, field('name', name)));
2927
3117
  }
2928
3118
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@willbooster/tree-sitter-c-sharp",
3
- "version": "12.0.0",
3
+ "version": "14.0.0",
4
4
  "description": "C# grammar for tree-sitter",
5
5
  "keywords": [
6
6
  "incremental",
@@ -48,7 +48,7 @@
48
48
  "@willbooster/oxfmt-config": "1.2.2",
49
49
  "@willbooster/oxlint-config": "1.4.8",
50
50
  "@willbooster/wb": "22.26.2",
51
- "@willbooster/web-tree-sitter": "9.0.0",
51
+ "@willbooster/web-tree-sitter": "10.0.2",
52
52
  "conventional-changelog-conventionalcommits": "10.4.1",
53
53
  "lefthook": "2.2.2",
54
54
  "oxfmt": "0.73.0",
@@ -62,7 +62,7 @@
62
62
  "wrangler": "4.149.0"
63
63
  },
64
64
  "peerDependencies": {
65
- "@willbooster/web-tree-sitter": "^9.0.0"
65
+ "@willbooster/web-tree-sitter": "^10.0.2"
66
66
  },
67
67
  "peerDependenciesMeta": {
68
68
  "@willbooster/web-tree-sitter": {
@@ -93,6 +93,10 @@
93
93
  "type": "expression",
94
94
  "named": true,
95
95
  "subtypes": [
96
+ {
97
+ "type": "alias_qualified_name",
98
+ "named": true
99
+ },
96
100
  {
97
101
  "type": "anonymous_method_expression",
98
102
  "named": true
@@ -970,6 +974,10 @@
970
974
  "multiple": false,
971
975
  "required": true,
972
976
  "types": [
977
+ {
978
+ "type": "alias_qualified_name",
979
+ "named": true
980
+ },
973
981
  {
974
982
  "type": "anonymous_method_expression",
975
983
  "named": true
@@ -1289,6 +1297,10 @@
1289
1297
  "multiple": false,
1290
1298
  "required": false,
1291
1299
  "types": [
1300
+ {
1301
+ "type": "alias_qualified_name",
1302
+ "named": true
1303
+ },
1292
1304
  {
1293
1305
  "type": "anonymous_method_expression",
1294
1306
  "named": true
@@ -1701,6 +1713,10 @@
1701
1713
  "multiple": false,
1702
1714
  "required": true,
1703
1715
  "types": [
1716
+ {
1717
+ "type": "alias_qualified_name",
1718
+ "named": true
1719
+ },
1704
1720
  {
1705
1721
  "type": "anonymous_method_expression",
1706
1722
  "named": true
@@ -2133,6 +2149,10 @@
2133
2149
  "multiple": false,
2134
2150
  "required": true,
2135
2151
  "types": [
2152
+ {
2153
+ "type": "alias_qualified_name",
2154
+ "named": true
2155
+ },
2136
2156
  {
2137
2157
  "type": "anonymous_method_expression",
2138
2158
  "named": true
@@ -2959,6 +2979,10 @@
2959
2979
  "multiple": false,
2960
2980
  "required": true,
2961
2981
  "types": [
2982
+ {
2983
+ "type": "alias_qualified_name",
2984
+ "named": true
2985
+ },
2962
2986
  {
2963
2987
  "type": "anonymous_method_expression",
2964
2988
  "named": true
@@ -3367,6 +3391,10 @@
3367
3391
  "multiple": false,
3368
3392
  "required": false,
3369
3393
  "types": [
3394
+ {
3395
+ "type": "alias_qualified_name",
3396
+ "named": true
3397
+ },
3370
3398
  {
3371
3399
  "type": "anonymous_method_expression",
3372
3400
  "named": true
@@ -5894,6 +5922,10 @@
5894
5922
  "multiple": false,
5895
5923
  "required": false,
5896
5924
  "types": [
5925
+ {
5926
+ "type": "alias_qualified_name",
5927
+ "named": true
5928
+ },
5897
5929
  {
5898
5930
  "type": "anonymous_method_expression",
5899
5931
  "named": true
@@ -6025,6 +6057,10 @@
6025
6057
  "multiple": false,
6026
6058
  "required": false,
6027
6059
  "types": [
6060
+ {
6061
+ "type": "alias_qualified_name",
6062
+ "named": true
6063
+ },
6028
6064
  {
6029
6065
  "type": "anonymous_method_expression",
6030
6066
  "named": true
Binary file
package/tree-sitter.json CHANGED
@@ -17,6 +17,7 @@
17
17
  ],
18
18
  "injection-regex": "cs",
19
19
  "external-files": [
20
+ "src/genericExpressions.h",
20
21
  "src/identifierCharacters.h",
21
22
  "src/nullableRank.h",
22
23
  "src/nullableTypes.h",
@@ -29,7 +30,7 @@
29
30
  }
30
31
  ],
31
32
  "metadata": {
32
- "version": "12.0.0",
33
+ "version": "14.0.0",
33
34
  "license": "MIT",
34
35
  "description": "C# grammar for tree-sitter",
35
36
  "authors": [