Skip to content

Commit ae15f17

Browse files
authored
tree-sitter: add support for implements in the tree sitter grammar (#169)
1 parent 6c511fc commit ae15f17

File tree

8 files changed

+220242
-218971
lines changed

8 files changed

+220242
-218971
lines changed

tree_sitter_v/bindings/node_types.v

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ pub enum NodeType {
7474
identifier_list
7575
if_attribute
7676
if_expression
77+
implements
7778
import_alias
7879
import_declaration
7980
import_list
@@ -383,6 +384,7 @@ const node_type_name_to_enum = {
383384
'identifier_list': NodeType.identifier_list
384385
'if_attribute': NodeType.if_attribute
385386
'if_expression': NodeType.if_expression
387+
'implements': NodeType.implements
386388
'import_alias': NodeType.import_alias
387389
'import_declaration': NodeType.import_declaration
388390
'import_list': NodeType.import_list

tree_sitter_v/grammar.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,9 +324,16 @@ module.exports = grammar({
324324
choice('struct', 'union'),
325325
field('name', $.identifier),
326326
optional(field('generic_parameters', $.generic_parameters)),
327+
optional(seq('implements', field('implements', $.implements))),
327328
$._struct_body,
328329
),
329330

331+
implements: ($) =>
332+
seq(
333+
choice($.type_reference_expression, $.qualified_type),
334+
repeat(seq(',', choice($.type_reference_expression, $.qualified_type)))
335+
),
336+
330337
_struct_body: ($) =>
331338
seq(
332339
'{',

tree_sitter_v/src/grammar.json

Lines changed: 68 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tree_sitter_v/src/node-types.json

Lines changed: 33 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)