summaryrefslogtreecommitdiff
path: root/main.ml
diff options
context:
space:
mode:
authorAlex Auvolat <alex.auvolat@ansys.com>2014-06-13 14:17:22 +0200
committerAlex Auvolat <alex.auvolat@ansys.com>2014-06-13 14:17:22 +0200
commitdedc98b0c14262c53e8573d7fe1dcaa370e43fb5 (patch)
treeac02f7271b054247984caa8aac13451ba98dc15b /main.ml
parentf7868083de2f351b5195149870e6e77398da44f9 (diff)
downloadscade-analyzer-dedc98b0c14262c53e8573d7fe1dcaa370e43fb5.tar.gz
scade-analyzer-dedc98b0c14262c53e8573d7fe1dcaa370e43fb5.zip
Move a lot of things.
Diffstat (limited to 'main.ml')
-rw-r--r--main.ml25
1 files changed, 14 insertions, 11 deletions
diff --git a/main.ml b/main.ml
index fa134ed..a90de2c 100644
--- a/main.ml
+++ b/main.ml
@@ -2,6 +2,7 @@ open Ast
(* command line options *)
let dump = ref false
+let dumprn = ref false
let test = ref false
let vtest = ref false
let ifile = ref ""
@@ -10,6 +11,7 @@ let usage = "usage: analyzer [options] file.scade"
let options = [
"--dump", Arg.Set dump, "Dump program source.";
+ "--dump-rn", Arg.Set dumprn, "Dump program source, after renaming.";
"--vtest", Arg.Set vtest, "Verbose testing.";
"--test", Arg.Set test, "Simple testing.";
]
@@ -22,9 +24,13 @@ let () =
exit 1
end;
- let prog = File_parser.parse_file !ifile in
- if !dump then Ast_printer.print_prog Format.std_formatter prog;
try
+ let prog = File_parser.parse_file !ifile in
+ if !dump then Ast_printer.print_prog Format.std_formatter prog;
+
+ let prog = Sca.rename_prog prog in
+ if !dumprn then Ast_printer.print_prog Format.std_formatter prog;
+
if !vtest then begin
let s0 = Interpret.program_init_state prog "test" in
Format.printf "Init state:@.";
@@ -60,13 +66,10 @@ let () =
it 0 s0
end
with
- | Data.Combinatorial_cycle v ->
- Format.eprintf "Combinatorial cycle (%s)@." v
- | Data.Type_error e ->
- Format.eprintf "Typing error: %s@." e
- | Data.Not_implemented l ->
- Format.eprintf "Not implemented: %s@." l
- | Data.No_variable id ->
- Format.eprintf "No such variable: %s@." id
-
+ | Util.NoLocError e -> Format.eprintf "Error: %s@." e
+ | Util.LocError(l, e) ->
+ Format.eprintf "Error: %s@." e;
+ List.iter
+ (fun loc -> Format.eprintf "At: %s@." (Ast_printer.string_of_extent loc))
+ l