|
#ifndef RAVA_REPL_INPUT_H
|
|
#define RAVA_REPL_INPUT_H
|
|
|
|
#include "repl_types.h"
|
|
|
|
typedef struct {
|
|
char *buffer;
|
|
size_t size;
|
|
size_t capacity;
|
|
int brace_depth;
|
|
int bracket_depth;
|
|
int paren_depth;
|
|
bool in_string;
|
|
char string_delimiter;
|
|
int line_count;
|
|
} RavaREPLInput_t;
|
|
|
|
RavaREPLInput_t* rava_repl_input_create(void);
|
|
void rava_repl_input_destroy(RavaREPLInput_t *input);
|
|
void rava_repl_input_reset(RavaREPLInput_t *input);
|
|
RavaREPLInputState_e rava_repl_input_append(RavaREPLInput_t *input, const char *line);
|
|
const char* rava_repl_input_get(RavaREPLInput_t *input);
|
|
bool rava_repl_input_is_empty(RavaREPLInput_t *input);
|
|
RavaREPLCodeType_e rava_repl_input_detect_type(const char *code);
|
|
|
|
#endif
|