DEADSOFTWARE

Добавлена конструкция FOR
[dsw-obn.git] / src / generator.h
index 885b9faca57509a697088c697353a5808e3b7296..436a0f8f01b3a3470a5681f436eb7a505f8ed074 100644 (file)
@@ -6,10 +6,13 @@ void oberon_generator_init_context(oberon_context_t * ctx);
 void oberon_generator_init_type(oberon_context_t * ctx, oberon_type_t * type);
 void oberon_generator_init_record(oberon_context_t * ctx, oberon_type_t * type);
 void oberon_generator_init_var(oberon_context_t * ctx, oberon_object_t * var);
+void oberon_generator_init_temp_var(oberon_context_t * ctx, oberon_object_t * var);
 void oberon_generator_init_proc(oberon_context_t * ctx, oberon_object_t * proc);
-void oberon_generator_init_module(oberon_context_t * ctx, oberon_module_t * mod);
 void oberon_generator_destroy_context(oberon_context_t * ctx);
 
+void oberon_generator_init_module(oberon_context_t * ctx, oberon_module_t * mod);
+void oberon_generator_fini_module(oberon_module_t * mod);
+
 /*
  * Функции генерации тела модуля
  */
@@ -25,6 +28,11 @@ void oberon_generate_begin_proc(oberon_context_t * ctx, oberon_object_t * proc);
 void oberon_generate_end_proc(oberon_context_t * ctx);
 void oberon_generate_call_proc(oberon_context_t * ctx, oberon_expr_t * desig);
 
+gen_label_t * oberon_generator_reserve_label(oberon_context_t * ctx);
+void oberon_generate_label(oberon_context_t * ctx, gen_label_t * l);
+void oberon_generate_branch(oberon_context_t * ctx, oberon_expr_t * cond, bool gotoif, gen_label_t * l);
+void oberon_generate_goto(oberon_context_t * ctx, gen_label_t * l);
+
 /*
  * Функции генерации операторов
  */