Skip to content

Commit

Permalink
chore: remove reset function
Browse files Browse the repository at this point in the history
  • Loading branch information
amaanq committed May 5, 2024
1 parent 6a6cf9e commit 38cf620
Showing 1 changed file with 35 additions and 33 deletions.
68 changes: 35 additions & 33 deletions src/scanner.c
Original file line number Diff line number Diff line change
@@ -1,46 +1,48 @@
#include "tree_sitter/parser.h"

enum TokenType {
TYPE_TOKEN
};
enum TokenType { TYPE_TOKEN };

void *tree_sitter_jsdoc_external_scanner_create() { return NULL; }
void tree_sitter_jsdoc_external_scanner_destroy(void *p) {}
void tree_sitter_jsdoc_external_scanner_reset(void *p) {}
unsigned tree_sitter_jsdoc_external_scanner_serialize(void *p, char *buffer) { return 0; }
void tree_sitter_jsdoc_external_scanner_deserialize(void *p, const char *b, unsigned n) {}

void tree_sitter_jsdoc_external_scanner_destroy(void *payload) {}

unsigned tree_sitter_jsdoc_external_scanner_serialize(void *payload, char *buffer) { return 0; }

void tree_sitter_jsdoc_external_scanner_deserialize(void *payload, const char *buffer, unsigned length) {}

// Scan to the next balanced `}` character.
static bool scan_for_type(TSLexer *lexer) {
int stack = 0;
while (true) {
if (lexer->eof(lexer)) {
return false;
int stack = 0;
while (true) {
if (lexer->eof(lexer)) {
return false;
}
switch (lexer->lookahead) {
case '{':
stack++;
break;
case '}':
stack--;
if (stack == -1) {
return true;
}
break;
case '\n':
case '\0': // fallthrough
// Something's gone wrong.
return false;
default:;
}
lexer->advance(lexer, false);
}
switch (lexer->lookahead) {
case '{':
stack++;
break;
case '}':
stack--;
if (stack == -1) { return true; }
break;
case '\n':
case '\0': // fallthrough
// Something's gone wrong.
return false;
default:;
}
lexer->advance(lexer, false);
}
}

bool tree_sitter_jsdoc_external_scanner_scan(void *payload, TSLexer *lexer, const bool *valid_symbols) {
if (valid_symbols[TYPE_TOKEN] && scan_for_type(lexer)) {
lexer->result_symbol = TYPE_TOKEN;
lexer->mark_end(lexer);
return true;
}
if (valid_symbols[TYPE_TOKEN] && scan_for_type(lexer)) {
lexer->result_symbol = TYPE_TOKEN;
lexer->mark_end(lexer);
return true;
}

return false;
return false;
}

0 comments on commit 38cf620

Please sign in to comment.