static kstatus_t readstmt(CTX, kwb_t *wb, kline_t *uline) { int line = 1; kstatus_t status = K_CONTINUE; // fputs(TERM_BBOLD(_ctx), stdout); while(1) { int check; char *ln = kreadline(line == 1 ? ">>> " : " "); if(ln == NULL) { kwb_free(wb); status = K_BREAK; break; } if(line > 1) kwb_putc(wb, '\n'); kwb_write(wb, ln, strlen(ln)); free(ln); if((check = checkstmt(kwb_top(wb, 0), kwb_bytesize(wb))) > 0) { uline[0]++; line++; continue; } if(check < 0) { fputs("(Cancelled)...\n", stdout); kwb_free(wb); } break; } if(kwb_bytesize(wb) > 0) { kadd_history(kwb_top(wb, 1)); } // fputs(TERM_EBOLD(_ctx), stdout); fflush(stdout); uline[0]++; return status; }
void check( Program *program, SymbolTable * table, HashTable *Htable)//changed { Statements *stmts = program->statements; while(stmts != NULL){ checkstmt(&stmts->first,table,Htable); stmts = stmts->rest; } }
static int l_stmt_gc(lua_State* L) { Stmt * stmt = checkstmt(L, 1); if (stmt->stmt) { int rc = sqlite3_finalize(stmt->stmt); if (rc != 0) { int hi = 5; hi; } } return 0; }
static sqlite3_stmt * checkstmt_stmt(lua_State * L, int narg) { return checkstmt(L, narg)->stmt; }