source: Deliverables/D2.2/8051/src/options.ml @ 740

Last change on this file since 740 was 740, checked in by ayache, 9 years ago

New memory model and bug fixes in 8051 branch. Added primitive operations in interpreters from Clight to LIN.

File size: 2.6 KB
Line 
1open Misc.ArgExt
2
3let default_choice       = "default"
4let option_settings_step = "during option settings"
5
6let language_from_string kind default s =
7  try 
8    Languages.from_string s
9  with Not_found -> 
10    if s = default_choice then 
11      default
12    else 
13      Error.global_error option_settings_step
14        (Printf.sprintf "`%s' is not a valid %s language." s kind)
15 
16let source_language_of_string   = language_from_string "source" Languages.Clight
17let source_language             = ref (source_language_of_string default_choice)
18let set_source_language s       = source_language := source_language_of_string s
19let get_source_language ()      = !source_language
20
21let target_language_of_string   = language_from_string "target" Languages.ASM
22let target_language             = ref (target_language_of_string default_choice)
23let set_target_language s       = target_language := target_language_of_string s
24let get_target_language ()      = !target_language
25
26let input_files                 = ref []
27let add_input_file f            = input_files := f :: !input_files
28let input_files ()              = !input_files
29
30let output_files                = ref None
31let set_output_files s          = output_files := Some s
32let get_output_files ()         = !output_files
33
34let annotation_flag             = ref false
35let request_annotation          = (:=) annotation_flag
36let annotation_requested ()     = !annotation_flag
37
38let interpretation_flag         = ref false
39let request_interpretation      = (:=) interpretation_flag
40let interpretation_requested () = !interpretation_flag
41
42let debug_flag                  = ref false
43let set_debug                   = (:=) debug_flag
44let is_debug_enabled ()         = !debug_flag
45
46(*
47let print_result_flag           = ref false
48let set_print_result            = (:=) print_result_flag
49let is_print_result_enabled ()  = !print_result_flag
50*)
51
52let dev_test                    = ref false
53let set_dev_test                = (:=) dev_test
54let is_dev_test_enabled ()      = !dev_test
55
56let options = OptionsParsing.register [
57  "-s", Arg.String set_source_language,
58  " Choose the source language between:";
59  extra_doc " Clight, Cminor";
60  extra_doc " [default is C]";
61
62  "-l", Arg.String set_target_language,
63  " Choose the target language between:";
64  extra_doc " Clight, Cminor, RTLabs, RTL, ERTL, LTL, LIN, ASM";
65  extra_doc " [default is ASM]";
66
67  "-a", Arg.Set annotation_flag,
68  " Add cost annotations on the source code.";
69
70  "-i", Arg.Set interpretation_flag,
71  " Interpret the compiled code.";
72
73  "-d", Arg.Set debug_flag,
74  " Debugging mode.";
75
76  "-o", Arg.String set_output_files,
77  " Prefix of the output files.";
78
79(*
80  "-res", Arg.Set print_result_flag,
81  " Print the result of interpretations.";
82*)
83
84  "-dev", Arg.Set dev_test,
85  " Playground for developers.";
86]
Note: See TracBrowser for help on using the repository browser.