... | @@ -15,7 +15,7 @@ is called *exact-printing*. An exact-printed program includes the original spaci |
... | @@ -15,7 +15,7 @@ is called *exact-printing*. An exact-printed program includes the original spaci |
|
We use the term *Exact-Printing Annotations* (EPAs) to refer to the extra bits of information included in the AST
|
|
We use the term *Exact-Printing Annotations* (EPAs) to refer to the extra bits of information included in the AST
|
|
only for the purposes of exact-printing. For example:
|
|
only for the purposes of exact-printing. For example:
|
|
* An if-then-else node in the syntax tree will include the precise location of the `if`, `then`, and `else` keywords
|
|
* An if-then-else node in the syntax tree will include the precise location of the `if`, `then`, and `else` keywords
|
|
* An list-comprehension node such as `[ f x | x <- xs, x > 3 ]` will include the locations of the `[`, `|`, and `]` punctuation; its statements will include the location of the comma separators.
|
|
* A list-comprehension node such as `[ f x | x <- xs, x > 3 ]` will include the locations of the `[`, `|`, and `]` punctuation; its statements will include the location of the comma separators.
|
|
* Every node will contain the locations and content of "nearby" comments (see XXX for what "nearby" means)
|
|
* Every node will contain the locations and content of "nearby" comments (see XXX for what "nearby" means)
|
|
In total, every visible part of the original program will be represented somewhere in the AST.
|
|
In total, every visible part of the original program will be represented somewhere in the AST.
|
|
|
|
|
... | | ... | |