tableEntry method
Exact valid-input counterpart of ts_language_table_entry.
Implementation
TreeSitterLanguageTableEntry tableEntry(int state, int symbol) {
if (symbol == treeSitterBuiltinErrorSymbol ||
symbol == treeSitterBuiltinErrorRepeatSymbol) {
return const TreeSitterLanguageTableEntry(
actions: <TreeSitterParseAction>[],
reusable: false,
);
}
if (symbol < 0 || symbol >= tokenCount) {
throw RangeError.range(symbol, 0, tokenCount - 1, 'symbol');
}
final index = actionIndex(state, symbol);
if (index < 0 || index >= parseActions.length) {
throw StateError(
'Parse action index $index is outside the action table.',
);
}
final entry = parseActions[index];
return TreeSitterLanguageTableEntry(
actions: entry.actions,
reusable: entry.reusable,
);
}