...
Information about Ant targets will be available by the time of donation.
All the compiled Java classes that comprise Falcon are packaged as falcon.jar
. It is generated at generated/dist/sdk/lib
. Other JAR files such as falcon-mxmlc.jar
and falcon-compc.jar
are codeless launcher JARs which serve only to run a particular entry point within Falcon. Launchers such as the shell script mxmlc
or the batch file mxmlc.bat
simply run these launch JARs from the command line.
Because Falcon requires a number of other files (such as flex-config.xml
, framework.swc
, etc.) to compile anything, the Falcon build script actually creates a small SDK in which everything is arranged so that tools like Falcon's mxmlc
work the way they would if they were in an actual Apache Flex SDK. This "Falcon SDK" is built at generated/dist/sdk
.
Using Falcon
On the Command Line
The bin
folder inside generated/dist/sdk
has the command-line launchers like mxmlc
, so using Falcon is the same as you are used to. For example, if you have but this bin
directory on your PATH and you have cd
'd to you application directory, then you just do
No Format |
---|
mxmlc MyApp.mxml
|
The options to the Falcon version of mxmlc
are basically the same as for the legacy compiler. Some options such as -keep
are no longer supported. If you try use an unsupported options, a warning will let you know.
Inside Eclipse
The relevant entry points for a Debug Configuration are the MXMLC
and COMPC
classes in the com.adobe.flash.compiler.clients
package.
Inside Flash Builder
There is no way to use Apache Falcon inside of Flash Builder, at least for now. Because Falcon is designed to be both a compiler and a code-intelligence engine, it has to be tightly integrated with Flash Builder; Flash Builder cannot load it from an SDK.
Testing Falcon
Test suites for Falcon are not yet ready for donation, because they require more extensive legal review. They will be donated later.
...
Please add questions here and people who contribute to Falcon will be happy to try to answer them.
Q: What do you mean by a "code intelligence engine"?
A: A library that supports smart editing such as code hinting, code completion, go-to-definition, find-references, refactoring, live error highlighting, etc. These things are useful as you write a program, even if you don't compile and run it.
Q: What is a lexer?
A: A lexer turns a source code file into a linear sequence of tokens. For example,
No Format |
---|
trace(i + 1);
|
would be lexed into seven token objects, represented as
No Format |
---|
TOKEN_IDENTIFIER "trace"
TOKEN_LEFT_PAREN "("
TOKEN_IDENTIFIER "I"
TOKEN_OPERATOR_PLUS "+"
TOKEN_NUMERIC_LITERAL "1"
TOKEN_RIGHT_PAREN ")"
TOKEN_SEMICOLON ";"
|
Q: What is a parser?
A: A parser turns the tokens into an abstract syntax tree.
...