From e7f5d6ea39479df93a858879a81cdd31cdb57130 Mon Sep 17 00:00:00 2001 From: Alex Manning Date: Tue, 23 Apr 2024 11:22:39 -0400 Subject: [PATCH] support attributes without arguments (i.e. `@internal`) (#84) --- grammar.js | 2 +- test/corpus/attributes.txt | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/grammar.js b/grammar.js index 4cf7cd4ef..96f12b7b7 100644 --- a/grammar.js +++ b/grammar.js @@ -62,7 +62,7 @@ module.exports = grammar({ seq( "@", field("name", $.identifier), - field("arguments", alias($._attribute_arguments, $.arguments)) + optional(field("arguments", alias($._attribute_arguments, $.arguments))) ), _attribute_arguments: ($) => diff --git a/test/corpus/attributes.txt b/test/corpus/attributes.txt index d1e77aa37..a630f7a73 100644 --- a/test/corpus/attributes.txt +++ b/test/corpus/attributes.txt @@ -46,3 +46,22 @@ pub fn wibble() { todo } parameters: (function_parameters) body: (function_body (todo)))) + +================================================================================ +Attribute without arguments +================================================================================ + +@internal +pub fn wibble() { todo } + +-------------------------------------------------------------------------------- + +(source_file + (attribute + name: (identifier)) + (function + (visibility_modifier) + name: (identifier) + parameters: (function_parameters) + body: (function_body + (todo))))