Proceedings of the 2020 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation 2020
DOI: 10.1145/3372884.3373162
|View full text |Cite
|
Sign up to set email alerts
|

High-fidelity metaprogramming with separator syntax trees

Abstract: Many metaprogramming tasks, such as refactorings, automated bug fixing, or large-scale software renovation, require high-fidelity source code transformations-transformations which preserve comments and layout as much as possible. Abstract syntax trees (ASTs) typically abstract from such details, and hence would require pretty printing, destroying the original program layout. Concrete syntax trees (CSTs) preserve all layout information, but transformation systems or parsers that support CSTs are rare and can be… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
4
0

Year Published

2022
2022
2024
2024

Publication Types

Select...
1
1
1

Relationship

1
2

Authors

Journals

citations
Cited by 3 publications
(4 citation statements)
references
References 14 publications
(30 reference statements)
0
4
0
Order By: Relevance
“…Another way of circumventing this tangling of code changes with their implementation as edit scripts would have been to use Rascal 's experimental concrete syntax features for abstract syntax trees 11 . This would allow us to write both the patterns and their substitutions in the C++ source language, while the same ASTs would be used under the hood.…”
Section: Evaluation and Discussionmentioning
confidence: 99%
See 3 more Smart Citations
“…Another way of circumventing this tangling of code changes with their implementation as edit scripts would have been to use Rascal 's experimental concrete syntax features for abstract syntax trees 11 . This would allow us to write both the patterns and their substitutions in the C++ source language, while the same ASTs would be used under the hood.…”
Section: Evaluation and Discussionmentioning
confidence: 99%
“…Augmenting the available functionality for C++ with concrete syntax pattern, for instance by implementing the Concretely framework, 12 would certainly make our patterns more concise and more readable. Furthermore, this would fully eliminate the bookkeeping of applied code changes, including file offset corrections, as (changed) parse trees could simply be unparsed 11 …”
Section: Evaluation and Discussionmentioning
confidence: 99%
See 2 more Smart Citations