Sha256: 02e3d2b44396ec3ad02facc6da95a4c77be459acf7b69d2bc15354adc1f675ef

Contents?: true

Size: 967 Bytes

Versions: 1

Compression:

Stored size: 967 Bytes

Contents

#ifndef RUNTIME_PARSER_H_
#define RUNTIME_PARSER_H_

#ifdef __cplusplus
extern "C" {
#endif

#include "runtime/stack.h"
#include "runtime/array.h"
#include "runtime/lexer.h"
#include "runtime/reusable_node.h"
#include "runtime/reduce_action.h"
#include "runtime/tree.h"

typedef struct {
  Tree *token;
  Tree *last_external_token;
  uint32_t byte_index;
} TokenCache;

typedef struct {
  Lexer lexer;
  Stack *stack;
  TreePool tree_pool;
  const TSLanguage *language;
  ReduceActionSet reduce_actions;
  Tree *finished_tree;
  Tree scratch_tree;
  TokenCache token_cache;
  ReusableNode reusable_node;
  void *external_scanner_payload;
  bool in_ambiguity;
  bool print_debugging_graphs;
  unsigned accept_count;
} Parser;

bool parser_init(Parser *);
void parser_destroy(Parser *);
Tree *parser_parse(Parser *, TSInput, Tree *, bool halt_on_error);
void parser_set_language(Parser *, const TSLanguage *);

#ifdef __cplusplus
}
#endif

#endif  // RUNTIME_PARSER_H_

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tree-sitter-0.1.0 ext/tree-sitter/tree-sitter/src/runtime/parser.h