#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