Skip to content
Snippets Groups Projects
Commit 57ecad58 authored by GARION Christophe's avatar GARION Christophe
Browse files

parser-json: clean main program + add pp for vars

parent 37290ede
No related branches found
No related tags found
No related merge requests found
......@@ -150,10 +150,16 @@ struct
name
(pp_src pp_sffunction) component_list
let pp_prog fmt (Program (name, component_list, _)) =
Format.fprintf fmt "Main node name: %s@ %a@ "
let pp_vars fmt src =
Format.fprintf fmt "@[<v>%a@ @]"
(Utils.fprintf_list ~sep:"@ " Printers.pp_var)
src
let pp_prog fmt (Program (name, component_list, vars)) =
Format.fprintf fmt "Main node name: %s@ %a@ %a@"
name
(pp_src pp_sffunction) component_list
pp_vars vars
let pp_scope fmt src =
Format.fprintf fmt (match src with
......@@ -162,23 +168,4 @@ struct
| Local -> "Local"
| Output -> "Output"
| Parameter -> "Parameter")
let pp_vars fmt src =
Format.fprintf fmt "@[<v>%a@ @]"
(Utils.fprintf_list ~sep:"@ "
(fun fmt src -> match src with
| (name, scope, Bool b) -> Format.fprintf fmt "%s: %a %s := %s"
name
pp_scope scope
"Bool" (string_of_bool b)
| (name, scope, Real f) -> Format.fprintf fmt "%s: %a %s := %s"
name
pp_scope scope
"Real" (string_of_float f)
| (name, scope, Int i) -> Format.fprintf fmt "%s: %a %s := %s"
name
pp_scope scope
"Int" (string_of_int i)
))
src
end
open Env
open Basetypes
open Datatype
(* open Interpreter *)
open Parser_json
(* open Transformer *)
open Theta
open CPS_ccode_generator
open CPS_interpreter
open CPS_transformer
open Sys
module ParseExt =
struct
......@@ -18,44 +12,10 @@ end
module Parse = Parser (ParseExt)
module Prog =
struct
let json = Yojson.Basic.from_file "GPCA_Alarm_Alarm_SFIR_pp.json"
let Program (init, defs, vars) = Parse.parse_prog json
let prog = Parse.parse_prog json
(* let user_vars = Parse.parse_variables json *)
(*let _ = Format.printf "Model definitions@.%a@.####" Simulink.pp_src defs; ()*)
end
module Transformer =
(* CPS_ccode_generator.LustrePrinter (Program) *)
CodeGenerator
(* CPS_ccode_generator.Evaluator *)
module Interp = Interpreter (Transformer)
module KenvTheta = KenvTheta (Transformer)
module Modularity : KenvTheta.ModularType =
struct
let modular : type b. (path_t, b, bool) tag_t -> path_t -> b =
fun tag ->
match tag with
| E -> (fun p p' f -> true)
| D -> (fun p -> true)
| X -> (fun p f -> true)
end
module Tables = KenvTheta.MemoThetaTables ()
module Thetaify = KenvTheta.ModularThetaify (Tables) (Modularity)
module EvalProg = Interp.Evaluation (Thetaify) (Prog)
let main () =
begin
SF.pp_prog Format.std_formatter (Parse.parse_prog Prog.json);
(* SF.pp_vars Format.std_formatter (Parse.parse_variables Prog.json); *)
let json = Yojson.Basic.from_file Sys.argv.(1) in
SF.pp_prog Format.std_formatter (Parse.parse_prog json);
end
let _ = main ()
......@@ -12,8 +12,8 @@ open Str
module type ParseExt =
sig
val parse_condition : json -> Condition.t
val parse_action : json -> Action.t
val parse_event : json -> Basetypes.event_t
val parse_action : json -> Action.t
val parse_event : json -> Basetypes.event_t
end
module Parser (Ext : ParseExt) =
......@@ -40,8 +40,6 @@ struct
(fun res -> SFFunction (parse_prog res))),
json |> member "data" |> to_list |> List.map parse_variable
)
(* and parse_variables json = *)
(* (\*Format.printf "parse_variables@.";*\) *)
(* json |> member "data" |> to_list |> List.map parse_variable *)
and parse_state json =
(*Format.printf "parse_state@.";*)
......@@ -150,7 +148,7 @@ struct
( json |> member "name" |> to_string,
{ty_dec_desc = datatype; ty_dec_loc = location},
{ck_dec_desc = Ckdec_any; ck_dec_loc = location},
false,
true,
Some initial_value
)
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment