rfc:ast_based_parsing_compilation_process
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
rfc:ast_based_parsing_compilation_process [2012/09/07 13:23] – Add section on error messages nikic | rfc:ast_based_parsing_compilation_process [2013/08/24 19:13] – add ML discussion nikic | ||
---|---|---|---|
Line 3: | Line 3: | ||
* Author: Nikita Popov < | * Author: Nikita Popov < | ||
* Status: Under Discussion | * Status: Under Discussion | ||
+ | * [[http:// | ||
===== Introduction ===== | ===== Introduction ===== | ||
Line 24: | Line 25: | ||
==== Elimination of various quirks ==== | ==== Elimination of various quirks ==== | ||
- | Currently there is various quirks in the emitted opcodes which can be attributed to the use of a single-pass compiler. Some examples: | + | Currently there are various quirks in the emitted opcodes which can be attributed to the use of a single-pass compiler. Some examples: |
* The NOP opcodes that are inserted in several places. (Yes, this point isn't particularly important) | * The NOP opcodes that are inserted in several places. (Yes, this point isn't particularly important) | ||
Line 42: | Line 43: | ||
With the current single-pass compiler some things are very hard / near impossible to implement. This actively influences syntax decisions. | With the current single-pass compiler some things are very hard / near impossible to implement. This actively influences syntax decisions. | ||
- | Two examples of syntax that is currently not possible, but would be possible with a syntax tree: | + | A few examples of syntax that is currently not possible, but would be possible with a syntax tree: |
* Array destructuring using something like '' | * Array destructuring using something like '' | ||
* List comprehensions / generator expressions where the result expression comes first, e.g. '' | * List comprehensions / generator expressions where the result expression comes first, e.g. '' | ||
+ | * C#-style expression trees (which form the basis for LINQ) | ||
Apart from larger syntax limitations the current system commonly also affects smaller syntax decisions. One example here are the strange parentheses requirements for the '' | Apart from larger syntax limitations the current system commonly also affects smaller syntax decisions. One example here are the strange parentheses requirements for the '' |
rfc/ast_based_parsing_compilation_process.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1