source: Deliverables/D2.2/8051-indexed-labels-branch/src/options.ml @ 1291

Last change on this file since 1291 was 740, checked in by ayache, 10 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.