From 818cd8c29199ff3302e383e4ecdb05f7a8f9c0b0 Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Thu, 11 Apr 2024 20:35:09 +0300 Subject: [PATCH] refactor(parser): make REDUCE macro non-variadic --- cli/src/generate/render.rs | 9 +-------- lib/src/parser.h | 15 +++++++++------ 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/cli/src/generate/render.rs b/cli/src/generate/render.rs index edc32621..bca439fa 100644 --- a/cli/src/generate/render.rs +++ b/cli/src/generate/render.rs @@ -1299,16 +1299,9 @@ impl Generator { } => { add!( self, - "REDUCE(.symbol = {}, .child_count = {child_count}", + "REDUCE({}, {child_count}, {dynamic_precedence}, {production_id})", self.symbol_ids[&symbol] ); - if dynamic_precedence != 0 { - add!(self, ", .dynamic_precedence = {dynamic_precedence}"); - } - if production_id != 0 { - add!(self, ", .production_id = {production_id}"); - } - add!(self, ")"); } } add!(self, ","); diff --git a/lib/src/parser.h b/lib/src/parser.h index 70d22982..a6081cc3 100644 --- a/lib/src/parser.h +++ b/lib/src/parser.h @@ -203,12 +203,15 @@ struct TSLanguage { } \ }} -#define REDUCE(...) \ - {{ \ - .reduce = { \ - .type = TSParseActionTypeReduce, \ - __VA_ARGS__ \ - }, \ +#define REDUCE(symbol_name, children, precedence, prod_id) \ + {{ \ + .reduce = { \ + .type = TSParseActionTypeReduce, \ + .symbol = symbol_name, \ + .child_count = children, \ + .dynamic_precedence = precedence, \ + .production_id = prod_id \ + }, \ }} #define RECOVER() \