2020-03-12 23:20:39 +01:00
|
|
|
open Trace
|
2020-03-16 14:28:05 +01:00
|
|
|
open Ast_sugar
|
2020-06-12 12:58:38 +02:00
|
|
|
open Desugaring
|
2020-06-12 13:33:14 +02:00
|
|
|
open Main_errors
|
2020-03-12 23:20:39 +01:00
|
|
|
|
2020-06-12 13:33:14 +02:00
|
|
|
let compile (program : program) : (Ast_core.program , _) result =
|
2020-06-12 12:58:38 +02:00
|
|
|
trace desugaring_tracer @@ compile_program program
|
2020-03-12 23:20:39 +01:00
|
|
|
|
2020-06-12 13:33:14 +02:00
|
|
|
let compile_expression (e : expression) : (Ast_core.expression , _) result =
|
2020-06-12 12:58:38 +02:00
|
|
|
trace desugaring_tracer @@ compile_expression e
|
2020-03-12 23:20:39 +01:00
|
|
|
|
|
|
|
let list_declarations (program : program) : string list =
|
|
|
|
List.fold_left
|
|
|
|
(fun prev el ->
|
|
|
|
let open Location in
|
|
|
|
match el.wrap_content with
|
|
|
|
| Declaration_constant (var,_,_,_) -> (Var.to_name var)::prev
|
|
|
|
| _ -> prev)
|
|
|
|
[] program
|