It is difficult to develop style-preserving source-to-source transformation engines for C and C++. The main reason is not the complexity of those languages, but the use of the C pre-processor (cpp), especially ifdefs and macros. This has for example hindered the development of refactoring tools for C and C++. In this paper we propose to combine multiple techniques and heuristics to parse C/C++ source files as-is, while still having only a few modifications to the original grammars of C and C++. We rely on the fact that in most C and C++ software, programmers follow a limited number of conventions on the use of cpp which makes it possible to disambiguate different situations by just looking at the context, names, or indentation of cpp con...
C preprocessor directives are heavily used in C programs because they provide useful and even necess...
It is difficult, if not impossible, for the code analyzers to employ front end from compilers, becau...
The significance of a source code translator between Turbo Pascal and Turbo C cannot be underestimat...
It is difficult to develop style-preserving source-to-source transformation engines for C and C++. T...
Though the C preprocessor provides necessary language features, it does so in an unstructured way. T...
AbstractAs software systems become increasingly massive, the advantages of automated transformation ...
The C preprocessor cpp is a widely used tool for implement-ing variable software. It enables program...
The parser-generator yacc is one of the oldest examples of a domain-specific language, providing si...
AbstractAs software systems become increasingly massive, the advantages of automated transformation ...
As we migrate software to new versions of programming languages, we would like to improve the style ...
We show how locally replaceable code snippets can be used to easily specify and prototype compiler ...
The C preprocessor is heavily used in C programs because it provides useful and even necessary addit...
It is difficult, if not impossible, for the code analyzers to employ front end from compilers, becau...
The C preprocessor is heavily used in C programs because it provides useful and even necessary addit...
Tool support for refactoring code written in mainstream languages such as C and C is currently lacki...
C preprocessor directives are heavily used in C programs because they provide useful and even necess...
It is difficult, if not impossible, for the code analyzers to employ front end from compilers, becau...
The significance of a source code translator between Turbo Pascal and Turbo C cannot be underestimat...
It is difficult to develop style-preserving source-to-source transformation engines for C and C++. T...
Though the C preprocessor provides necessary language features, it does so in an unstructured way. T...
AbstractAs software systems become increasingly massive, the advantages of automated transformation ...
The C preprocessor cpp is a widely used tool for implement-ing variable software. It enables program...
The parser-generator yacc is one of the oldest examples of a domain-specific language, providing si...
AbstractAs software systems become increasingly massive, the advantages of automated transformation ...
As we migrate software to new versions of programming languages, we would like to improve the style ...
We show how locally replaceable code snippets can be used to easily specify and prototype compiler ...
The C preprocessor is heavily used in C programs because it provides useful and even necessary addit...
It is difficult, if not impossible, for the code analyzers to employ front end from compilers, becau...
The C preprocessor is heavily used in C programs because it provides useful and even necessary addit...
Tool support for refactoring code written in mainstream languages such as C and C is currently lacki...
C preprocessor directives are heavily used in C programs because they provide useful and even necess...
It is difficult, if not impossible, for the code analyzers to employ front end from compilers, becau...
The significance of a source code translator between Turbo Pascal and Turbo C cannot be underestimat...