blob: a24b5157f7ea8cc47c09a0adf0c8bf35cff3ffac (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# emulate a C preprocessor (well, sort of)
:TOP
y/ / /
s/ */ /g
s%/\*.*\*/%%
/\/\*/{
:COMMENT
/\*\//!{
s/.*//
N
bCOMMENT
}
s%^.*\*/%%
bTOP
}
/^ *# *ifdef/{
s/^ *# *ifdef //
b
}
/^ *# *ifndef/{
s/^ *# *ifndef //
b
}
/^ *# *if.*defined/{
s/^ *# *if //
:IF
/^defined/!{
:NUKE
s/^.//
/^defined/!bNUKE
}
h
/^defined/s/^defined *( *\([A-Za-z0-9_]*\) *).*/\1/p
g
/^defined/s/^defined *( *\([[A-Za-z0-9_]*\) *)//
/defined/!{
d
b
}
bIF
}
d
|