[cfe-dev] [RFC] Easier source-to-source transformations with clang tooling
Jonas Toth via cfe-dev
cfe-dev at lists.llvm.org
Thu Jan 24 02:56:47 PST 2019
one question that came to my mind because of Joel's Mail:
Is it possible to run in multiple passes?
My use-case is adding `const` to variables that could be 'const' but
aren't. If you declare multiple variables like `int not_const,
the transformation requires splitting these up, first -> `int not_const;
int const_variable;` and then do the `const` transformation -> `int
not_const; const int const_variable;`.
I have implemented both transformations in clang-tidy (only partially
landed yet) but there is no easy way I can run them in one check. The
pretty much forces us to run clang-tidy multiple times and converge to
the final solution.
If your framework could give an improvement in this place, would be
awesome! And I think worth to consider anyway If we change the way
we do transformations.
Am 16.11.18 um 16:22 schrieb Yitzhak Mandelbaum via cfe-dev:
> Hi all,
> I have a proposal for a framework that makes it easier to write source
> to source transformations with the clang::Tooling libraries, including
> clang-tidy checks.
> The full proposal is in this doc:
> From the doc:
> Transformer is a framework that aims to simplify development of
> clang-based source-to-source transformations. It focuses on the
> particular class of transformations that act only locally — that is,
> use local information about the code and make local changes (like a
> syntax-aware “find-and-replace”); and at scale — that is, will be
> carried out on many source files. The target audience is users that
> are comfortable with, or willing to become comfortable with, the clang
> AST matchers library.
> I have a working prototype of this library which I've used on small
> examples inside Google. I plan to put together a patch for reference
> next week, although the doc should stand on its own.
> Yitzhak Mandelbaum
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-dev