Skip to content

Commit 18ea74e

Browse files
authored
Merge pull request tree-sitter#3280 from ObserverOfTime/reduce
refactor(parser): make REDUCE macro non-variadic
2 parents c051a90 + 818cd8c commit 18ea74e

File tree

2 files changed

+10
-14
lines changed

2 files changed

+10
-14
lines changed

cli/src/generate/render.rs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1299,16 +1299,9 @@ impl Generator {
12991299
} => {
13001300
add!(
13011301
self,
1302-
"REDUCE(.symbol = {}, .child_count = {child_count}",
1302+
"REDUCE({}, {child_count}, {dynamic_precedence}, {production_id})",
13031303
self.symbol_ids[&symbol]
13041304
);
1305-
if dynamic_precedence != 0 {
1306-
add!(self, ", .dynamic_precedence = {dynamic_precedence}");
1307-
}
1308-
if production_id != 0 {
1309-
add!(self, ", .production_id = {production_id}");
1310-
}
1311-
add!(self, ")");
13121305
}
13131306
}
13141307
add!(self, ",");

lib/src/parser.h

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -203,12 +203,15 @@ struct TSLanguage {
203203
} \
204204
}}
205205

206-
#define REDUCE(...) \
207-
{{ \
208-
.reduce = { \
209-
.type = TSParseActionTypeReduce, \
210-
__VA_ARGS__ \
211-
}, \
206+
#define REDUCE(symbol_name, children, precedence, prod_id) \
207+
{{ \
208+
.reduce = { \
209+
.type = TSParseActionTypeReduce, \
210+
.symbol = symbol_name, \
211+
.child_count = children, \
212+
.dynamic_precedence = precedence, \
213+
.production_id = prod_id \
214+
}, \
212215
}}
213216

214217
#define RECOVER() \

0 commit comments

Comments
 (0)