Get the wasm build working w/ latest emscripten
This commit is contained in:
parent
53949b09fd
commit
a2d6048226
3 changed files with 19 additions and 12 deletions
|
|
@ -115,18 +115,10 @@ extern void tree_sitter_parse_callback(
|
|||
);
|
||||
|
||||
extern void tree_sitter_log_callback(
|
||||
void *payload,
|
||||
TSLogType log_type,
|
||||
bool is_lex_message,
|
||||
const char *message
|
||||
);
|
||||
|
||||
void ts_parser_new_wasm() {
|
||||
TSParser *parser = ts_parser_new();
|
||||
char *input_buffer = calloc(INPUT_BUFFER_SIZE, sizeof(char));
|
||||
TRANSFER_BUFFER[0] = parser;
|
||||
TRANSFER_BUFFER[1] = input_buffer;
|
||||
}
|
||||
|
||||
static const char *call_parse_callback(
|
||||
void *payload,
|
||||
uint32_t byte,
|
||||
|
|
@ -148,8 +140,23 @@ static const char *call_parse_callback(
|
|||
return buffer;
|
||||
}
|
||||
|
||||
static void call_log_callback(
|
||||
void *payload,
|
||||
TSLogType log_type,
|
||||
const char *message
|
||||
) {
|
||||
tree_sitter_log_callback(log_type == TSLogTypeLex, message);
|
||||
}
|
||||
|
||||
void ts_parser_new_wasm() {
|
||||
TSParser *parser = ts_parser_new();
|
||||
char *input_buffer = calloc(INPUT_BUFFER_SIZE, sizeof(char));
|
||||
TRANSFER_BUFFER[0] = parser;
|
||||
TRANSFER_BUFFER[1] = input_buffer;
|
||||
}
|
||||
|
||||
void ts_parser_enable_logger_wasm(TSParser *self, bool should_log) {
|
||||
TSLogger logger = {self, should_log ? tree_sitter_log_callback : NULL};
|
||||
TSLogger logger = {self, should_log ? call_log_callback : NULL};
|
||||
ts_parser_set_logger(self, logger);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -880,7 +880,7 @@ class Language {
|
|||
}
|
||||
|
||||
return bytes
|
||||
.then(bytes => loadWebAssemblyModule(bytes, {loadAsync: true}))
|
||||
.then(bytes => loadSideModule(bytes, {loadAsync: true}))
|
||||
.then(mod => {
|
||||
const symbolNames = Object.keys(mod)
|
||||
const functionName = symbolNames.find(key =>
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ mergeInto(LibraryManager.library, {
|
|||
}
|
||||
},
|
||||
|
||||
tree_sitter_log_callback: function(_payload, isLexMessage, messageAddress) {
|
||||
tree_sitter_log_callback: function(isLexMessage, messageAddress) {
|
||||
if (currentLogCallback) {
|
||||
const message = UTF8ToString(messageAddress);
|
||||
currentLogCallback(message, isLexMessage !== 0);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue