Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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.

...