home *** CD-ROM | disk | FTP | other *** search
- #!/usr/local/bin/kermit +
- #
- # ifdef
- #
- # A simple tool to check big C source files for #if/#ifdef/#ifndef..#endif
- # structure, handy for finding mismatches.
- #
- # F. da Cruz, Columbia University, October 2009
- #
- define display {
- .\%9 ::= (\m(depth) * 2) - 2
- echo "\flpad(\m(n),6). [\m(depth)] \frepeat(\32,\%9)\m(line)"
- }
- if not def \%1 exit 1 "usage: \%0 filename"
- fopen /read \%c \%1
- if fail exit 1
- .depth = 0
- .n = 0
- while 1 {
- fread /line \%c line
- if fail break
- incr n
- .line := \fleft(\funtabify(\m(line)),40)
- if < \flen(\m(line)) 6 continue
- switch \m(line) {
- :#if*
- incr depth
- display
- break
- :#endif*
- display
- decr depth
- break
- :default
- continue
- }
- }
- fclose \%c
- exit
-