Generated parsers no longer export a parser constructor function. They now export an opaque Language object which can be set on Documents directly. This way, the logic for constructing parsers lives entirely in the runtime. The Languages are just structs which have no load-time dependency on the runtime
40 lines
865 B
C
40 lines
865 B
C
#include "runtime/helpers/dummy_language.h"
|
|
#include "tree_sitter/parser.h"
|
|
|
|
const TSParseAction parse_table[3][5] = {
|
|
[0] = {
|
|
[dummy_sym2] = SHIFT(12),
|
|
[dummy_sym3] = SHIFT(12),
|
|
},
|
|
[1] = {
|
|
[dummy_sym1] = ACCEPT_INPUT(),
|
|
[dummy_sym2] = SHIFT(2),
|
|
[dummy_sym3] = SHIFT(4),
|
|
},
|
|
[2] = {
|
|
[dummy_sym1] = SHIFT(3),
|
|
[dummy_sym2] = SHIFT(12),
|
|
[dummy_sym3] = SHIFT(12),
|
|
},
|
|
};
|
|
|
|
const TSStateId lex_states[3] = {
|
|
[0] = 100,
|
|
[1] = 101,
|
|
[2] = 102,
|
|
};
|
|
|
|
const int hidden_symbols[5] = {
|
|
[dummy_sym1] = 0,
|
|
[dummy_sym2] = 0,
|
|
[dummy_sym3] = 1,
|
|
};
|
|
|
|
static TSLanguage language = {
|
|
.symbol_count = 5,
|
|
.parse_table = (const TSParseAction *)parse_table,
|
|
.lex_states = lex_states,
|
|
.hidden_symbol_flags = hidden_symbols,
|
|
};
|
|
|
|
TSLanguage *dummy_language = &language;
|