forked from jasder/antlr
2.3 KiB
2.3 KiB
Semi-automatic conversion with Sharpen
The update process for keeping the C# port up-to-date uses several steps, taking advantage of automatic translation features provided by Sharpen.
- Changes are made to the reference (Java) version of ANTLR 4. Since the C# port is based on the optimized release of ANTLR 4, this means commits were pushed to the antlr4/optimized branch.
- The changes are merged into the antlr4/sharpen branch of the ANTLR 4 repository, and any changes to the Java code necessary for successful translation are kept in this branch.
- In the antlr4cs/sharpen branch (of the C# port repository), the submodule reference/antlr4 is updated to include the latest code from item 2.
- The configuration file
sharpen-all-options.txt
is updated as necessary for the translation. - The code is translated to update the antlr4cs/sharpen branch.
- The antlr4cs/sharpen branch is merged back into antlr4cs/master, which contains the compilable code. Git's internal merge abilities allow us to continually maintain the extensive patches necessary to produce a proper binary from the output of Sharpen.
Setting Up Sharpen
- In Eclipse, Import... -> General -> Existing Projects into Workspace
- Import
${antlr4cs}/reference/sharpen/sharpen.core
, and do not check the option to copy the project into the workspace. - Create a new run configuration based on "Eclipse Application"
- Main -> Program to Run -> Run an application: sharpen.core.application
- Arguments -> configure according to the "Sharpen options" section
Sharpen options
Custom Variables
${antlr4cs}
- the path where the ANTLR 4 C# port is checked out locally${m2_home}
- the path to your Maven configuration folder, e.g.~/.m2
Program arguments
-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog
-data ${antlr4cs}/reference -srcFolder runtime/Java/src
antlr4
-header ${antlr4cs}/reference/sharpen-header.txt
-cp ${m2_home}/repository/org/abego/treelayout/org.abego.treelayout.core/1.0.1/org.abego.treelayout.core-1.0.1.jar
@sharpen-all-options.txt
VM arguments
-Dosgi.requiredJavaVersion=1.5 -Xms1g -Xmx2g -XX:+UseG1GC -XX:+TieredCompilation -XX:MaxPermSize=384m
Working directory
${antlr4cs}/reference