From c0377818aa198a5b5d0d3c7697373c5b6828d5fa Mon Sep 17 00:00:00 2001 From: Mitja Felicijan Date: Tue, 7 Nov 2023 16:38:48 +0100 Subject: Added tree-sitter vendor library --- vendor/tree-sitter/lib/src/reduce_action.h | 34 ++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 vendor/tree-sitter/lib/src/reduce_action.h (limited to 'vendor/tree-sitter/lib/src/reduce_action.h') diff --git a/vendor/tree-sitter/lib/src/reduce_action.h b/vendor/tree-sitter/lib/src/reduce_action.h new file mode 100644 index 0000000..72aff08 --- /dev/null +++ b/vendor/tree-sitter/lib/src/reduce_action.h @@ -0,0 +1,34 @@ +#ifndef TREE_SITTER_REDUCE_ACTION_H_ +#define TREE_SITTER_REDUCE_ACTION_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "./array.h" +#include "tree_sitter/api.h" + +typedef struct { + uint32_t count; + TSSymbol symbol; + int dynamic_precedence; + unsigned short production_id; +} ReduceAction; + +typedef Array(ReduceAction) ReduceActionSet; + +static inline void ts_reduce_action_set_add(ReduceActionSet *self, + ReduceAction new_action) { + for (uint32_t i = 0; i < self->size; i++) { + ReduceAction action = self->contents[i]; + if (action.symbol == new_action.symbol && action.count == new_action.count) + return; + } + array_push(self, new_action); +} + +#ifdef __cplusplus +} +#endif + +#endif // TREE_SITTER_REDUCE_ACTION_H_ -- cgit v1.2.3