#include "tree_sitter/parser.h"
enum TokenType
{
TIGHT_UNARY_EXPRESSION_ALT
};
void *tree_sitter_miniscript_external_scanner_create() {
return NULL;
}
void tree_sitter_miniscript_external_scanner_destroy(void *payload) {}
unsigned tree_sitter_miniscript_external_scanner_serialize(void *payload, char *buffer) {
return 0;
}
void tree_sitter_miniscript_external_scanner_deserialize(void *payload, const char *buffer, unsigned length) {}
bool tree_sitter_miniscript_external_scanner_scan(void *payload, TSLexer *lexer, const bool *valid_symbols) {
if (!valid_symbols[TIGHT_UNARY_EXPRESSION_ALT]) return false;
bool isThereSpaceInFront = false;
while (lexer->lookahead == ' ' || lexer->lookahead == '\t') {
lexer->advance(lexer, false); isThereSpaceInFront = true;
}
if (!isThereSpaceInFront) return false;
if (lexer->lookahead == '+' || lexer->lookahead == '-') {
int op = lexer->lookahead;
lexer->advance(lexer, false);
if (lexer->lookahead == ' ' || lexer->lookahead == '\t' || lexer->lookahead == '\n' || lexer->lookahead == '\r')
{
return false;
}
lexer->result_symbol = TIGHT_UNARY_EXPRESSION_ALT;
return true;
}
return false;
}