# README

# The following executable package provides the following functionalities:

## Execution of M programs
1. Execution of a given json file.
2. Execution of a given directory with json files
3. Execution of a given jsonl (json lines) file

## Plotting Metrics:
1. Plotting of metrics like sketch match, function match and execution match.

## Unrolling functionality:
1. Unrolling of a M code in json file
2. Unrolling of M code in a directory with json files
3. Unrolling of M code in a jsonl file
4. Unrolling of an arbitrary M code

## The various params for the executable are:
1. -m : The mode of execution. The mode can be one of the following:
    - run: To run a given json file
    - run_dir: To run a given directory with json files
    - run_jsonl: To run a given jsonl file
    - plot: To plot metrics
    - unroll: To unroll a given M code
2. -f : The file path of the json file or directory or jsonl file or M code
3. -o : The output directory where the output files will be stored
4. -p : The plot type. The plot type can be one of the following:
    - sketch_match: To plot sketch match
    - function_match: To plot function match
    - execution_match: To plot execution match
