Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

lustrec / src / tools / importer / main_lustre_importer.ml @ d3f0059e

History | View | Annotate | Download (986 Bytes)

1
(* An application that loads json provided input and produces Lustre
2

    
3
Usage:
4
lustrei -vhdl myvhdl.json 
5
lustrei -scade myscademodel.json 
6
  will produce a lustre file that can be compiled and analyzed
7

    
8
VHDL is handled in a double way: as a backend and as an import language
9
In a first step, lustrei -vhdl -print myvhdl.json shall print the VHDL model in stdout
10

    
11
 *)
12
(*
13
open Vhdl_ast
14
open Vhdl_test
15
  *)
16
open Yojson.Safe
17
open Vhdl_ast_utils
18
open Vhdl_ast_map
19
open Vhdl_ast
20
open Ppxlib_traverse_builtins
21
open Printf
22

    
23
let _ =
24
  (* Load model with Yojson *)
25
  let vhdl_json = from_file Sys.argv.(1) in
26

    
27
  (* Create VHDL values *)
28
  let vhdl = vhdl_file_t_of_yojson vhdl_json in
29

    
30
  (* Simplify VHDL values *)
31
  match vhdl with
32
    Ok x ->
33
      Format.printf "Parsed VHDL: \n%s\n" (pretty_to_string (vhdl_file_t_to_yojson x));
34
      let folded = replace_op_expr#vhdl_file_t x in
35
      Format.printf "PP VHDL: \n%s\n" (show_vhdl_file_t folded);
36
  | Error e -> Format.printf "Error: %s\n" e;
37