Revision a7062da6
Added by LĂ©lio Brun over 3 years ago
src/backends/C/c_backend.ml | ||
---|---|---|
32 | 32 |
| None -> |
33 | 33 |
let open Error in |
34 | 34 |
Global.main_node := node; |
35 |
Format.eprintf "Code generation error: %a@." pp_error_msg Main_not_found;
|
|
36 |
raise (Error (Location.dummy_loc, Main_not_found))
|
|
35 |
Format.eprintf "Code generation error: %a@." pp Main_not_found; |
|
36 |
raise (Error (Location.dummy, Main_not_found)) |
|
37 | 37 |
| Some m -> |
38 | 38 |
f m |
39 | 39 |
|
... | ... | |
100 | 100 |
(* close_out makefile_out *) |
101 | 101 |
|
102 | 102 |
let print_c_header basename = |
103 |
let open Options in |
|
103 | 104 |
let header_m = |
104 |
match !Options.spec with
|
|
105 |
| "no" ->
|
|
106 |
C_backend_header.((module EmptyMod : MODIFIERS_HDR))
|
|
107 |
| "acsl" ->
|
|
108 |
C_backend_header.((module C_backend_spec.HdrMod : MODIFIERS_HDR))
|
|
109 |
| "c" ->
|
|
105 |
match !spec with |
|
106 |
| SpecNo ->
|
|
107 |
C_backend_header.(module EmptyMod : MODIFIERS_HDR)
|
|
108 |
| SpecACSL ->
|
|
109 |
C_backend_header.(module C_backend_spec.HdrMod : MODIFIERS_HDR)
|
|
110 |
| SpecC ->
|
|
110 | 111 |
assert false (* not implemented yet *) |
111 |
| _ -> |
|
112 |
assert false |
|
113 | 112 |
in |
114 |
let module Header = C_backend_header.Main ((val header_m)) in
|
|
115 |
let destname = !Options.dest_dir ^ "/" ^ basename in
|
|
113 |
let module Header = C_backend_header.Main (val header_m) in
|
|
114 |
let destname = !dest_dir ^ "/" ^ basename in |
|
116 | 115 |
(* Generating H file *) |
117 | 116 |
let lusic = Lusic.read_lusic destname ".lusic" in |
118 | 117 |
let header_file = destname ^ ".h" in |
... | ... | |
122 | 121 |
|
123 | 122 |
let translate_to_c generate_c_header basename prog machines dependencies = |
124 | 123 |
let header_m, source_m, source_main_m, makefile_m = |
125 |
match !Options.spec with |
|
126 |
| "no" -> |
|
124 |
let open Options in |
|
125 |
match !spec with |
|
126 |
| SpecNo -> |
|
127 | 127 |
( C_backend_header.((module EmptyMod : MODIFIERS_HDR)), |
128 | 128 |
C_backend_src.((module EmptyMod : MODIFIERS_SRC)), |
129 | 129 |
C_backend_main.((module EmptyMod : MODIFIERS_MAINSRC)), |
130 | 130 |
C_backend_makefile.((module EmptyMod : MODIFIERS_MKF)) ) |
131 |
| "acsl" ->
|
|
131 |
| SpecACSL ->
|
|
132 | 132 |
let open C_backend_spec in |
133 | 133 |
( C_backend_header.((module HdrMod : MODIFIERS_HDR)), |
134 | 134 |
C_backend_src.((module SrcMod : MODIFIERS_SRC)), |
135 | 135 |
C_backend_main.((module EmptyMod : MODIFIERS_MAINSRC)), |
136 | 136 |
C_backend_makefile.((module MakefileMod : MODIFIERS_MKF)) ) |
137 |
| "c" ->
|
|
137 |
| SpecC ->
|
|
138 | 138 |
assert false (* not implemented yet *) |
139 |
| _ -> |
|
140 |
assert false |
|
141 | 139 |
in |
142 | 140 |
let module Header = C_backend_header.Main ((val header_m)) in |
143 | 141 |
let module Source = C_backend_src.Main ((val source_m)) in |
Also available in: Unified diff
another step towards refactoring