This is an automated email from the ASF dual-hosted git repository. aharui pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/royale-compiler.wiki.git
The following commit(s) were added to refs/heads/master by this push: new 6f498bd Updated Developer Guide (markdown) 6f498bd is described below commit 6f498bd266307708b5374b7e396e6119aeaacc77 Author: aharui <aha...@apache.org> AuthorDate: Thu May 31 15:18:20 2018 -0700 Updated Developer Guide (markdown) --- Developer-Guide.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Developer-Guide.md b/Developer-Guide.md index 657029e..a305484 100644 --- a/Developer-Guide.md +++ b/Developer-Guide.md @@ -4,6 +4,8 @@ The Royale Compiler is a set of Java projects. Eclipse is used by most of the d The compiler uses several third-party libraries. The ActionScript parsing is handled by Antlr 3. MXML parsing uses JFlex. SWF output uses JBurg. SWF output also uses LZMA for SWF compression. JS output uses Google Closure Library. JUnit is used for testing. And Apache Commons and Guava are used throughout. Volunteers who want to consolidate the parsing to use, say, Antlr 4 are welcome. +### Projects + The compiler projects are described below and listed in build dependency order. These two projects rarely, if ever, change and thus aren't even in the main Maven build. You will probably never need to know what is in these projects. @@ -24,4 +26,10 @@ The rest of the projects don't get touched too often. * **royale-ant-tasks** - The Apache Ant integration project. * **royale-maven-plugin** - The Apache Maven integration project. +### Terminology and Concepts + +The compiler has a set of "clients" that are entry points into the compiler. They will be found in packages ending with "client". There is an mxmlc and compc client just for SWF output in order to be more backward compatible with Apache Flex. There is an externc client for generating TypeDefs SWCs. The compiler-jx project has its own clients called mxmljsc and compjsc that launch the compiler code with different output generators known as "emitters". + +The compiler-jx project also introduces the concept of a "target" which is a set of emitters and an optional "publisher". A publisher takes the output and does some post-processing. The default Royale Publisher for JavaScript calls the Google Closure Compiler to optimize the output JS. There is a Cordova Publisher that further calls Apache Cordova command-line commands to package the JavaScript for use as a Cordova application. The user can specify more than one target at a time. Th [...] +Pretty much all targets start execution the same way: They build an Abstract Syntax Tree (AST). \ No newline at end of file -- To stop receiving notification emails like this one, please contact aha...@apache.org.