aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorNathan Reiner <nathan@nathanreiner.xyz>2025-05-28 10:08:41 +0200
committerNathan Reiner <nathan@nathanreiner.xyz>2025-05-28 10:08:41 +0200
commit011e8e2ec2d7900d5c8d26f43f3b91999427be61 (patch)
tree7a8e2597eed5e1ca95fa02ee2f042034c87954c8 /README.md
parentf49a8e54eeaa5bca332fc7cc977d47583e8fe297 (diff)
add readme and licence
Diffstat (limited to 'README.md')
-rw-r--r--README.md30
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.