Project

General

Profile

« Previous | Next » 

Revision 9e5f8085

Added by Guillaume DAVY over 4 years ago

Ada: Add support for arrows as an independent generic package, instantiated in each
package using it. It required a lot of refactoring.

View differences:

src/backends/Ada/ada_backend_wrapper.ml
24 24
   @param instrs list of instructions printer
25 25
**)
26 26
let pp_main_procedure_definition machine fmt (locals, instrs) =
27
    let pp_name = pp_main_procedure_name machine in
28 27
    pp_procedure_definition
29
      pp_name
30
      (pp_simple_prototype pp_name)
28
      pp_main_procedure_name
29
      (pp_simple_prototype pp_main_procedure_name)
31 30
      (fun fmt local -> fprintf fmt "%t" local)
32 31
      (fun fmt instr -> fprintf fmt "%t" instr)
33 32
      fmt
......
48 47
   @param fmt the formater to print on
49 48
   @param machine the main machine
50 49
**)
51
let pp_main_file fmt machine =
50
let pp_main_adb fmt machine =
52 51
  let stateVar = "state" in
53 52
  let step_parameters = machine.mstep.step_inputs@machine.mstep.step_outputs in
54
  let pp_local_state_var_decl fmt = pp_node_state_decl stateVar fmt machine.mname in
53
  let pp_local_state_var_decl fmt = pp_node_state_decl [] stateVar fmt machine in
55 54
  let apply_pp_var_decl var fmt = pp_machine_var_decl NoMode fmt var in
56 55
  let locals = List.map apply_pp_var_decl step_parameters in
57 56
  let locals = pp_local_state_var_decl::locals in
58 57
  let pp_reset fmt =
59 58
    fprintf fmt "%a.reset(%s)"
60
      pp_package_name machine.mname
59
      pp_package_name machine
61 60
      stateVar in
62 61
  let pp_loop fmt =
63 62
    fprintf fmt "while true loop@,  %a.step(@[%s,@ %a@]);@,end loop"
64
      pp_package_name machine.mname
63
      pp_package_name machine
65 64
      stateVar
66 65
      (Utils.fprintf_list ~sep:",@ " pp_var_name) step_parameters
67 66
      in
68 67
  let instrs = [pp_reset; pp_loop] in
69 68
  fprintf fmt "@[<v>%a;@,@,%a;@]"
70
    pp_with_node machine.mname
69
    pp_with_machine machine
71 70
    (pp_main_procedure_definition machine) (locals, instrs)
72 71

  
72

  
73
(** Print the arrow ads file.
74
   @param fmt the formater to print on
75
**)
76
let pp_arrow_ads fmt =
77
  fprintf fmt "COUCOU"
78

  
79
(** Print the arrow adb file.
80
   @param fmt the formater to print on
81
**)
82
let pp_arrow_adb fmt =
83
  fprintf fmt "COUCOU"
84

  
73 85
(** Print the gpr project file.
74 86
   @param fmt the formater to print on
75 87
   @param machine the main machine
76 88
**)
77 89
let pp_project_file fmt machine =
78 90
    fprintf fmt "project %a is@.  for Main use (\"%a\");@.end %a;"
79
      pp_package_name machine.mname
80
      pp_main_filename machine
81
      pp_package_name machine.mname
91
      pp_package_name machine
92
      (pp_filename "adb") pp_main_procedure_name
93
      pp_package_name machine
82 94

  
83 95
end

Also available in: Unified diff