From e09b0bb865bbb0087c46b4acd90b759f14dfa824 Mon Sep 17 00:00:00 2001 From: jwansek Date: Mon, 18 Oct 2021 16:40:56 +0100 Subject: added sableCC calculator --- code/simpleSableCCCalulator/README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 code/simpleSableCCCalulator/README.md (limited to 'code/simpleSableCCCalulator/README.md') diff --git a/code/simpleSableCCCalulator/README.md b/code/simpleSableCCCalulator/README.md new file mode 100644 index 0000000..4c75421 --- /dev/null +++ b/code/simpleSableCCCalulator/README.md @@ -0,0 +1,20 @@ +# simpleSableCCCalculator + +sableCC is a too used to parse .grammar files (containing a BNF, and lexer information) +into a lexer and parser. We can do a depth first traversal of the produced abstract syntax tree +to parse in the correct order. This is in the file `Translation.java`. + +You produce a lexer and parser by running the sablecc .jar file you can download [here](http://downloads.sourceforge.net/sablecc/sablecc-3.7.zip). Then run it with the first argument as the grammar file: + +`java -jar sablecc-3.7/lib/sablecc.jar sableCCCalculator.grammar` + +(changing the paths as appropriate). The produced java files are not included in git since they're unnessicary. We compile the compiler, program stack and translator: + +`javac sableCCCalculator/*.java` + +Then we can run the program. For now it only works by reading files. There are some example maths questions in the examples folder: + +`java sableCCCalculator.Compiler examples/maths.txt` + + + -- cgit v1.2.3