diff options
| author | Nathan Reiner <nathan@nathanreiner.xyz> | 2025-05-28 10:08:41 +0200 |
|---|---|---|
| committer | Nathan Reiner <nathan@nathanreiner.xyz> | 2025-05-28 10:08:41 +0200 |
| commit | 011e8e2ec2d7900d5c8d26f43f3b91999427be61 (patch) | |
| tree | 7a8e2597eed5e1ca95fa02ee2f042034c87954c8 /README.md | |
| parent | f49a8e54eeaa5bca332fc7cc977d47583e8fe297 (diff) | |
add readme and licence
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..ebed7d7 --- /dev/null +++ b/README.md @@ -0,0 +1,30 @@ +# MRY + +## Grammar Files + +The grammar file needs to be in the following format: + +``` +main -> expression +expression -> binary_operation | number | '(' expression ')' +binary_operation -> expression binary_operand expression +binary_operand -> '+' | '-' | '*' | '/' +number -> digit number | digit +digit -> '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' +``` + +Where all terminals are in single-quotes and the rest are non-terminals. + +> NOTE: +> The default entry point name is always `main` if you want to use +> a different one, use the `-e` or `--entry` option. + +## Running Benchmark + +To run benchmark of your grammar run: + +```sh +$ zig build run --release=fast -- benchmark <grammar-file> -i <input-file> +``` + +Where `<input-file>` contains test-strings on each line. |