Git init
[external/mawk.git] / examples / nocomment.awk
1 #!/usr/bin/mawk -f
2
3 # remove C comments  from a list of files
4 # using a comment as the record separator
5 #
6 # this is trickier than I first thought
7 # The first version in .97-.9993 was wrong
8
9 BEGIN {
10  # RS is set to  a comment (this is mildly tricky, I blew it here
11  RS = "/\*([^*]|\*+[^*/])*\*+/"
12  ORS = " "
13  getline hold
14  filename = FILENAME
15 }
16
17 # if changing files
18 filename != FILENAME {
19   filename = FILENAME
20   printf "%s" , hold
21   hold = $0
22   next
23 }
24
25 { # hold one record because we don't want ORS on the last
26   #  record in each file
27   print hold
28   hold = $0
29 }
30
31 END { printf "%s", hold }