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