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.

Reply via email to