とくにあぶなくないRiSKのブログ

危ないRiSKのブログだったかもしれない。本当はRiSKだけどググラビリティとか取得できるIDの都合でsscriskも使ったり。

#define から #undef を生成する (2)

見つけた #define に対して,逆順に #undef を出力するようにしてみました。
つまり

#define hoge fuga
#define foo baz

を喰わせれば,

#undef foo
#undef hoge

を吐きます。
多分,この方が自然な出力だと思います。

#!/cygdrive/c/Python31/python
# -*- coding:utf-8 -*-

import sys
import re

def print_undef():
    line = sys.stdin.readline()
    if line:
        print_undef()
        mo = re.compile(r'^\s*#\s*define\s+([A-Za-z_]+)').match(line)
        if mo != None:
            sys.stdout.write('#undef ' + mo.group(1) + '\n')

print_undef()