SugarJ Eclipse plugin (recommended) =================================== Visit the SugarJ web site http://sugarj.org Installation ------------ 1. Install Eclipse (follow instructions on eclipse.org). 2. Start Eclipse. 3. In Eclipse, select 'Install New Software' in the 'Help' menu. 4. In the 'work with' field, copy the SugarJ update site http://update.sugarj.org and hit enter. 5. Be sure to deselect the 'Group items by category' checkbox on the bottom of the window. 6. Select the latest instance of Sugarclipse and click continue. This will install the SugarJ compiler, Spoofax and the Sugarclipse plugin. In addition, please ensure enough stack space (about 4-16 MB) is available for the SDF parser. You can set the stack space of your Java runtime using the -Xss16m command line argument when starting Eclipse or setting -Xss16m in your eclipse.ini file. Setting up a SugarJ project --------------------------- 1. Create a new Java project. 2. As for now, we need to register the SugarJ builder for this project by hand: Open your project's '.project' file in any text editor and replace the Java build command by the following code: org.sugarj.editor.SugarJBuilder 3. We're ready to go. Note: SugarJ source files must have the file extension ".sugj". SugarJ standalone compiler ========================== Installing SugarJ ----------------- The SugarJ compiler is almost self-contained and only requires an installation of a Java runtime version 6 or higher. Download `sugarj.zip` and extract it to a location of your choice. The directory structure of the archive is as follows. sugarj/ bin/ Scripts to invoke SugarJ sugarj Compiler for *nix sugarj.bat Compiler for Windows sugh Alias of `sugarj -l haskell` for *nix sugh.bat Alias of `sugarj -l haskell` for Windows sugj Alias of `sugarj -l java` for *nix sugj.bat Alias of `sugarj -l java` for Windows case-studies/ Sample SugarJ projects lib/ The back end README.md This file Adding `sugarj/bin` to the `PATH` environmental variable of your platform will allow invocation of SugarJ scripts without prefixing them by a location. Invoking SugarJ --------------- If the current directory is your working directory containing the source files, calling SugarJ is very easy: bin/sugarj -l java closures/Test.sugj The `-l` flag is necessary to specify your host language of choice. Currently, we support Haskell, Java, and Prolog. If your source files are located in `case-studies/closure/src`, you can invoke the compiler like this on *nix: bin/sugarj -l java \ --sourcepath case-studies/closures/src \ -d case-studies/closures/bin \ concretesyntax/Test.sugj # file(s) to compile relative # to sourcepath On Windows: bin\sugarj -l java ^ --sourcepath case-studies/closures/src ^ -d case-studies/closures/bin ^ concretesyntax\Test.sugj The generated `Test.class` may be executed thus: java -cp case-studies/closures/bin concretesyntax.Test Compiler options ---------------- --atomic-imports Parse all import statements simultaneously. --cache Specifiy a directory for caching. --cache-info Show where files are cached -cp,--buildpath Specify where to find compiled files. Multiple paths can be given separated by ':'. -d Specify where to place compiled files --full-command-line Show all arguments to subprocesses --gen-files Generate files? --help Print this synopsis of options -l,--language Specify a language library to activate. --no-checking Do not check resulting SDF and Stratego files. --read-only-cache Specify the cache to be read-only. --silent-execution Try to be silent --sourcepath Specify where to find source files. Multiple paths can be given separated by ':'. --sub-silent-execution Do not display output of subprocesses -v,--verbose Show verbose output --write-only-cache Specify the cache to be write-only.