blob: 4878685ef4be6ea7d7230394a3177af9e27ab5c8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# 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`
I setup a makefil that can be used. First make sure that sablecc is extracted in the directory below `EsotericProject` and just run `make`.
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`
|