tree-sitter-cfml 0.26.20

cfml grammar for tree-sitter
Documentation
#include "../../common/scanner.h"

void *tree_sitter_cfquery_external_scanner_create() {
    Scanner *scanner = (Scanner *)ts_calloc(1, sizeof(Scanner));
    return scanner;
}

bool tree_sitter_cfquery_external_scanner_scan(void *payload, TSLexer *lexer, const bool *valid_symbols) {
    return external_scanner_scan(payload, lexer, valid_symbols, CF_ELSE_TAG_NAME + 1, true);
}

unsigned tree_sitter_cfquery_external_scanner_serialize(void *payload, char *buffer) {
    Scanner *scanner = (Scanner *)payload;
    return serialize(scanner, buffer, true);
}

void tree_sitter_cfquery_external_scanner_deserialize(void *payload, const char *buffer, unsigned length) {
    Scanner *scanner = (Scanner *)payload;
    deserialize(scanner, buffer, length, true);
}

void tree_sitter_cfquery_external_scanner_destroy(void *payload) {
    Scanner *scanner = (Scanner *)payload;
    for (unsigned i = 0; i < scanner->tags.size; i++) {
        tag_free(&scanner->tags.contents[i]);
    }
    array_delete(&scanner->tags);

    for (unsigned i = 0; i < scanner->cf_tags.size; i++) {
        tag_free(&scanner->cf_tags.contents[i]);
    }
    array_delete(&scanner->cf_tags);
    ts_free(scanner);
}