1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver### DEPENDENCIES ###
2324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
3324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverPrerequisites:
4324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  * Java JRE 1.6 or greater.
5324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  * Apache Ant 1.7.0 or greater; see http://ant.apache.org/manual/install.html
6324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
7324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverBefore building the JavaScript target you will need to download a few third
8324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverparty open source libraries:
9324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  * ant-contrib: Download ant-contrib here: http://downloads.sourceforge.net/ant-contrib/ant-contrib-1.0b3-bin.zip?modtime=1162486738&big_mirror=0
11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  * Unzip the downloaded file.
12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  * Move ant-contrib-1.0b3.jar from the unzipped directory to runtime/JavaScript/third/
13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  * closure compiler: Download here: http://closure-compiler.googlecode.com/files/compiler-latest.zip
15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  * Unzip the downloaded file.
16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  * Move compiler.jar from the unzipped directory to runtime/JavaScript/third/
17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  * jsdoc-toolkit: Download the latest release from here: http://code.google.com/p/jsdoc-toolkit/downloads/list
19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  * Unzip the downloaded file.
20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  * Move the unzipped folder to runtime/JavaScript/third/jsdoc-toolkit
21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  * jsunit: Download here: https://sourceforge.net/project/showfiles.php?group_id=28041&package_id=19823&release_id=404277 
23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  * Unzip the downloaded file.
24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  * Move the unzipped folder to runtime/JavaScript/tests/jsunit
25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver### BUILD ###
27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver1) In a shell cd to runtime/JavaScript/build.
28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver2) Run 'ant'. This will build the JavaScript runtime libraries into the
29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver   runtime/JavaScript/lib folder.
30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver### TESTS ###
32324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverCompile Tests:
33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver1) Build the Antlr tool itself (see main Antlr documentation for details).
34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver   This is most easily done by cd'ing to the root of the antlr code and running
35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver   'mvn -Dmaven.test.skip=true package assembly:assembly'.  If using a
36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver   different build method, update runtime/JavaScript/build/antlr3.properties to
37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver   point to the alternative jar.
38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver2) In a shell cd to runtime/JavaScript/build.
39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver3) Run 'ant compile-tests'.  This can take a while.  Warnings (but not errors)
40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver   issued during this step are expected.  (We test the JS runtime against
41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver   grammars that have recoverable problems.)
42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
43324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverRun Tests:
44324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver1) Compile the tests using the directions above.
45324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver2) Open runtime/JavaScript/tests/jsunit/testRunner.html in a browser.  Note
46324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver   that some browsers (notably, Firefox 3.5) will have trouble with this page
47324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver   when opened with the 'file://' protocol.  To circumvent this issue, start
48324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver   and access the page through a lightweight http server (e.g. Mongoose).
49324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver3) Select the file runtime/JavaScript/tests/functional/all.html (or any other
50324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver   test html file).
51324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver4) Hit 'Run' and (hopefully ;) watch the pretty green bar grow.
52