Tweak naming and organization of external-scanner related language fields

This commit is contained in:
Max Brunsfeld 2016-12-21 11:24:41 -08:00
parent 42c41c158c
commit 34a65f588d
4 changed files with 54 additions and 57 deletions

View file

@ -52,7 +52,7 @@ typedef struct {
typedef struct {
uint16_t lex_state;
uint16_t external_tokens;
uint16_t external_lex_state;
} TSLexMode;
typedef union {
@ -74,15 +74,15 @@ typedef struct TSLanguage {
const TSParseActionEntry *parse_actions;
const TSLexMode *lex_modes;
bool (*lex_fn)(TSLexer *, TSStateId);
const TSSymbol *external_token_symbol_map;
const bool *external_token_lists;
struct {
const bool *states;
const TSSymbol *symbol_map;
void *(*create)();
bool (*scan)(void *, TSLexer *, const bool *symbol_whitelist);
void (*destroy)(void *);
void (*reset)(void *);
bool (*scan)(void *, TSLexer *, const bool *symbol_whitelist);
bool (*serialize)(void *, TSExternalTokenState);
void (*deserialize)(void *, TSExternalTokenState);
void (*destroy)(void *);
} external_scanner;
} TSLanguage;
@ -175,8 +175,6 @@ typedef struct TSLanguage {
.symbol_names = ts_symbol_names, \
.lex_fn = ts_lex, \
.external_token_count = EXTERNAL_TOKEN_COUNT, \
.external_token_lists = (const bool *)ts_external_token_lists, \
.external_token_symbol_map = ts_external_token_symbol_map, \
.external_scanner = {__VA_ARGS__} \
}; \
return &language \