Skip to content

Commit 91f6498

Browse files
authored
Merge pull request github#18537 from jketema/elifdef
C++: Support `#elifdef`, `#elifndef`, and MSVC's `#import`
2 parents b4c8390 + ac18e74 commit 91f6498

File tree

16 files changed

+10188
-332
lines changed

16 files changed

+10188
-332
lines changed

cpp/downgrades/59cb96ca699929b63941e81905f9b8de7eed59a6/old.dbscheme

Lines changed: 2432 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
class PreprocessorDirective extends @preprocdirect {
2+
string toString() { none() }
3+
}
4+
5+
class Location extends @location_default {
6+
string toString() { none() }
7+
}
8+
9+
bindingset[kind]
10+
int getKind(int kind) {
11+
if kind = 14
12+
then result = 6 // Represent MSFT #import as #include
13+
else
14+
if kind = 15 or kind = 6
15+
then result = 3 // Represent #elifdef and #elifndef as #elif
16+
else result = kind
17+
}
18+
19+
from PreprocessorDirective ppd, int kind, Location l
20+
where preprocdirects(ppd, kind, l)
21+
select ppd, getKind(kind), l

0 commit comments

Comments
 (0)