22 lines
784 B
Awk
22 lines
784 B
Awk
# syntax: GAWK -f STRIP_BLOCK_COMMENTS.AWK filename
|
|
# source: https://www.gnu.org/software/gawk/manual/gawk.html#Plain-Getline
|
|
# Remove text between /* and */, inclusive
|
|
{ while ((start = index($0,"/*")) != 0) {
|
|
out = substr($0,1,start-1) # leading part of the string
|
|
rest = substr($0,start+2) # ... */ ...
|
|
while ((end = index(rest,"*/")) == 0) { # is */ in trailing part?
|
|
if (getline <= 0) { # get more text
|
|
printf("unexpected EOF or error: %s\n",ERRNO) >"/dev/stderr"
|
|
exit
|
|
}
|
|
rest = rest $0 # build up the line using string concatenation
|
|
}
|
|
rest = substr(rest,end+2) # remove comment
|
|
$0 = out rest # build up the output line using string concatenation
|
|
}
|
|
printf("%s\n",$0)
|
|
}
|
|
END {
|
|
exit(0)
|
|
}
|