Versions Compared

Key

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

...

Falcon uses third-party grammars like JFlex, ANTLR, and JBurg to generate various lexers, parsers, and code generators.

The lexer for AS and MXML

Falcon's code generator using a Bottom-Up Rewrite Machine which finds patterns in an abstract syntax tree and "reduces" them to ABC instructions. The ins

The typical data flow for an AS file is

...

Falcon has the general concept of a "problem", where a problem can end up being considered an error, a warning, or ignored.. Problems are discovered by the semantic checker, which is part of the same phase of compilation as code generation. (This minimizes the number of times that the syntax tree must be traversed.) Falcon provides live problem highlighting to Flash Builder. When you pause during editing a file, the file is compiled and the problems show up as red squiggly underlines. Falcon tries to continue after almost all problems, so that you don't necessarily have to fix every problem before you can get a SWF to run.

...

Please add questions here and people who contribute to Falcon will be happy to try to answer them.

Q: What is a lexer?

A: A lexer turns source code into tokens.

Q: What is a parser?

A: A parser turns tokens into an abstract syntax tree.

Q: Question.A: Answer: What is a code generator?

A: A code generator turns an abstract syntax tree into bytecode.

Q: What is a semantic checker?

A: A semantic checker finds problems in the source code.

Q: What is an example of how Falcon generates better bytecode than the legacy compiler?

Falcon does both constant propogation and inlining.