diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2019-06-06 10:34:01 +0200 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2019-09-28 14:30:48 +0200 |
commit | 3bddf050230635febc16aabe0ba4f73abeed6663 (patch) | |
tree | 96cee8145c473378ee33083493fbd4e9a62cedf5 /src/tree_sitter/reduce_action.h | |
parent | 0d9a3c86a1c7143187398e6cb6005ed06a5e2fde (diff) | |
download | rneovim-3bddf050230635febc16aabe0ba4f73abeed6663.tar.gz rneovim-3bddf050230635febc16aabe0ba4f73abeed6663.tar.bz2 rneovim-3bddf050230635febc16aabe0ba4f73abeed6663.zip |
tree-sitter: vendor tree-sitter runtime
tree-sitter/tree-sitter commit 7685b7861ca475664b6ef57e14d1da9acf741275
Included files are:
lib/include/tree-sitter/*.h
lib/src/*.[ch]
LICENSE
Diffstat (limited to 'src/tree_sitter/reduce_action.h')
-rw-r--r-- | src/tree_sitter/reduce_action.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/tree_sitter/reduce_action.h b/src/tree_sitter/reduce_action.h new file mode 100644 index 0000000000..72aff08d73 --- /dev/null +++ b/src/tree_sitter/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_ |