ligo/src/main/compile/of_imperative.ml

27 lines
706 B
OCaml
Raw Normal View History

open Main_errors
2020-03-12 23:20:39 +01:00
open Trace
open Ast_imperative
2020-06-12 12:58:38 +02:00
open Purification
2020-03-12 23:20:39 +01:00
type form =
| Contract of string
| Env
let compile (program : program) : (Ast_sugar.program, _) result =
2020-06-12 12:58:38 +02:00
trace purification_tracer @@ compile_program program
2020-03-12 23:20:39 +01:00
let compile_expression (e : expression) : (Ast_sugar.expression , _) result =
2020-06-12 12:58:38 +02:00
trace purification_tracer @@ compile_expression e
2020-03-12 23:20:39 +01:00
let pretty_print formatter (program : program) =
PP.program formatter program
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