Minor modifications, adding comments

This commit is contained in:
elvis
2025-01-15 00:10:44 +01:00
parent 11adaa5103
commit cf0bc41a23
15 changed files with 124 additions and 54 deletions

View File

@ -5,7 +5,7 @@ open Lexing
(* Command Arguments *)
let () =
Clap.description "Interpreter for MiniImp language.";
Clap.description "Interpreter for MiniImp language to RISC code.";
let files = Clap.section ~description: "Files to consider." "FILES" in
let values = Clap.section ~description: "Input values." "VALUES" in
@ -36,6 +36,22 @@ let () =
false
in
let checkundefined = Clap.flag
~description: "Optional flag for disabling the check for undefined variables."
~section: values
~unset_long: "undefined"
~unset_short: 'u'
true
in
let optimizereg = Clap.flag
~description: "Optional flag for disabling optimizing registers with liveness analysis."
~section: values
~unset_long: "liveness"
~unset_short: 'l'
true
in
let inputval = Clap.default_int
~description: "Optional input value to feed to the program. \
If not specified it is read from stdin."
@ -85,7 +101,7 @@ let () =
CfgRISC.convert
in
let () = (
if checkundefined then (
match DefinedVariables.compute_defined_variables return_value |>
DefinedVariables.check_undefined_variables
with
@ -94,13 +110,20 @@ let () =
Printf.printf "Error: undefined variables: %a\n"
DefinedVariables.Variable.pplist l;
exit (-1)
) in
) else ();
let return_value =
if optimizereg then
return_value |>
LiveVariables.compute_live_variables |>
LiveVariables.optimize_cfg |>
LiveVariables.compute_cfg
else
return_value
in
let return_value =
return_value |>
LiveVariables.compute_live_variables |>
LiveVariables.optimize_cfg |>
LiveVariables.compute_cfg |>
ReduceRegisters.reduceregisters registers |>
RISC.convert
in