tree-sitter/src/runtime/parser.h

41 lines
757 B
C
Raw Normal View History

#ifndef RUNTIME_PARSER_H_
#define RUNTIME_PARSER_H_
#ifdef __cplusplus
extern "C" {
#endif
2015-09-18 18:04:52 -07:00
#include "runtime/stack.h"
2016-02-17 20:41:29 -08:00
#include "runtime/array.h"
#include "runtime/lexer.h"
#include "runtime/reduce_action.h"
2016-02-17 14:45:00 -08:00
typedef struct {
TSTree *tree;
size_t char_index;
} ReusableNode;
typedef struct {
Lexer lexer;
2015-09-18 18:04:52 -07:00
Stack *stack;
const TSLanguage *language;
ReduceActionSet reduce_actions;
2015-12-24 22:04:20 -08:00
TSTree *finished_tree;
bool is_split;
bool print_debugging_graphs;
TSTree scratch_tree;
TSTree *cached_token;
size_t cached_token_char_index;
ReusableNode reusable_node;
2016-08-29 12:08:58 -07:00
} Parser;
2016-08-29 12:08:58 -07:00
bool parser_init(Parser *);
void parser_destroy(Parser *);
TSTree *parser_parse(Parser *, TSInput, TSTree *);
#ifdef __cplusplus
}
#endif
#endif // RUNTIME_PARSER_H_