You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This will create the directories `analysis`,`lexer`,`node`,`parser` within
17
-
`arden2bytecode/src/arden`.
9
+
Dependencies
10
+
------------
18
11
19
-
When the input grammar is changed, you will need to re-generate the parser.
20
-
Before regenerating the parser, you should delete the old `analysis`,`lexer`,
21
-
`node`,`parser` directories to ensure there aren't any old files left behind.
12
+
The dependencies are downloaded automatically if you use [Ant](https://ant.apache.org/) or [Eclipse](https://eclipse.org/) to build the project. See the "dependencies" target in [build.xml](build.xml) for download links.
22
13
23
-
If you use Eclipse to build, compiling the parser is done automatically.
24
-
The Eclipse project has a SableCC builder in Project -> Properties -> Builders.
25
-
The SableCC builder of the project basically starts the Ant task `sableCC`
26
-
contained in build.xml.
27
-
As building the parser has only to be done initially and after changes of
28
-
the grammar, you can disable the SableCC builder if you want to save time.
14
+
-[SableCC](http://www.sablecc.org/): A "compiler-compiler" which is used to generate the arden parser from a grammar file. Usage: `java -jar tools/sablecc.jar -d src/ src/arden.scc src/ardenConstants.scc`
15
+
-[JewelCli](http://jewelcli.lexicalscope.com/): A command line arguments parser.
16
+
-[JUnit](http://junit.org/): A testing framework to test the correct implementation and standard compliance.
17
+
-[Hamcrest-core](http://hamcrest.org/JavaHamcrest/): Used with JUnit to create short and concise tests.
29
18
30
-
If you use Ant to build, SableCC is started automatically. Again, if you want
31
-
to save time, you can disable the `sableCC` target by removing the `sableCC`
32
-
dependency from the `compile` target.
33
19
20
+
Building
21
+
--------
22
+
To compile Arden2ByteCode, you first need to generate the parser using the SableCC parser generator.
34
23
35
-
Building Howto
36
-
--------------
24
+
To build the parser with **Eclipse**, import the project and choose *Project*⇒*Build project* from the menu. On the first build you need to refresh the Project (F5), so Eclipse finds the downloaded dependencies.
25
+
To build with **Ant**, `cd` into the project root and type `ant` at the command prompt.
37
26
38
-
To build with Eclipse, import the project and choose
39
-
Project -> Build project... from the menu.
27
+
Both will automatically call the "sableCC" target in the [build.xml](build.xml) and generate the .java files for the parser in the packages `analysis`, `lexer`, `node`, `parser`. This can take some time, but will only happen if the .java files do not exist or are out-of-date.
40
28
41
-
To build with Ant, cd into the source root and type `ant` at the command
42
-
prompt.
29
+
When the input grammar is changed, you will need to regenerate the parser. Before regenerating the parser, you should call the "clean" target (*Project*⇒*Clean…*) to ensure there aren't any old files left behind.
43
30
44
-
This is explained in detail in the project's wiki at GitHub:
This is explained in detail in the wiki: [Getting started with Arden2ByteCode](https://github.com/PLRI/arden2bytecode/wiki/Getting-started-with-Arden2ByteCode)
46
36
47
37
48
38
Notes to the Present Implementation
@@ -58,7 +48,7 @@ Languages features not implemented:
58
48
* 11.2.2 Event Statement
59
49
* 13 Evoke Slot
60
50
* From Arden Syntax 2.5 specification:
61
-
* 11.2.5.2 Message As statement
51
+
* 11.2.5.2 Message As statement
62
52
* 11.2.5.6 Destination As statement
63
53
* Some string formatting specificiers are not implemented.
64
54
* There is no way to use Arden variables within mapping clauses.
0 commit comments