#include "src/comp.h" #include "src/object.h" #include "src/register.h" #include "trig.c" #include "src/lang/ast.h" #include int main() { struct PawAST *ast = ast_make(); ast_insert_property(ast, "i", make_pawval_int(ast->mem, 0)); enum PawCtrl *body = make_pawctrl_seq(ast->mem); pawctrl_append(body, make_pawctrl_call(ast->mem, ping_func)); pawctrl_append(body, make_pawctrl_asign( ast->mem, ast_get_property(ast, "i"), make_pawval_expr(ast->mem, ast_get_property(ast, "i"), make_pawval_int(ast->mem, 1), op_add))); pawctrl_append( ast->prog, make_pawctrl_while(ast->mem, make_pawval_expr(ast->mem, ast_get_property(ast, "i"), make_pawval_int(ast->mem, 1000000), op_unequals), body)); ast_exec(ast); return 0; struct Vk *vk; cat_Comp *state = cat_comp_init("meooow", 500, 500, &vk); struct Register *reg = make_register(); reg_attatch_type(reg, "trig", OBJ_MAKE make_trig, OBJ_FREE free_trig, OBJ_TICK trig_tick); struct Scene *scene = make_scene(vk, reg); scene_queue_insert(scene, "trig", trig_make_args(scene)); while (!cat_comp_should_close(state)) { scene_tick(scene); cat_comp_draw(state); } free_scene(scene); free_register(reg); cat_comp_uninit(state); state = NULL; reg = NULL; scene = NULL; }