#ifndef RAVA_REPL_EXECUTOR_H #define RAVA_REPL_EXECUTOR_H #include "repl_types.h" #include "repl_session.h" typedef struct { RavaREPLSession_t *session; int timeout_ms; volatile bool interrupted; RavaValue_t last_result; bool show_timing; } RavaREPLExecutor_t; RavaREPLExecutor_t* rava_repl_executor_create(RavaREPLSession_t *session); void rava_repl_executor_destroy(RavaREPLExecutor_t *executor); RavaREPLExecResult_e rava_repl_executor_execute(RavaREPLExecutor_t *executor, const char *code); RavaREPLExecResult_e rava_repl_executor_execute_expression(RavaREPLExecutor_t *executor, const char *code); RavaREPLExecResult_e rava_repl_executor_execute_statement(RavaREPLExecutor_t *executor, const char *code); RavaREPLExecResult_e rava_repl_executor_execute_var_decl(RavaREPLExecutor_t *executor, const char *code); RavaREPLExecResult_e rava_repl_executor_execute_method_decl(RavaREPLExecutor_t *executor, const char *code); RavaREPLExecResult_e rava_repl_executor_execute_class_decl(RavaREPLExecutor_t *executor, const char *code); RavaValue_t rava_repl_executor_get_result(RavaREPLExecutor_t *executor); void rava_repl_executor_interrupt(RavaREPLExecutor_t *executor); #endif