2014-10-17 23:05:08 -07:00
|
|
|
#include "tree_sitter/runtime.h"
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
2015-09-22 21:19:19 -07:00
|
|
|
static void log_debug(void *payload, TSDebugType type, const char *msg) {
|
|
|
|
|
bool include_lexing = (bool)payload;
|
2014-10-17 23:05:08 -07:00
|
|
|
switch (type) {
|
|
|
|
|
case TSDebugTypeParse:
|
|
|
|
|
fprintf(stderr, "* %s\n", msg);
|
|
|
|
|
break;
|
|
|
|
|
case TSDebugTypeLex:
|
2015-09-22 21:19:19 -07:00
|
|
|
if (include_lexing)
|
|
|
|
|
fprintf(stderr, " %s\n", msg);
|
2014-10-17 23:05:08 -07:00
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2015-09-22 21:19:19 -07:00
|
|
|
TSDebugger log_debugger_make(bool include_lexing) {
|
2014-10-17 23:05:08 -07:00
|
|
|
TSDebugger result;
|
2015-09-22 21:19:19 -07:00
|
|
|
result.payload = (void *)include_lexing;
|
2014-10-17 23:05:08 -07:00
|
|
|
result.debug_fn = log_debug;
|
|
|
|
|
return result;
|
|
|
|
|
}
|