File: eatc.awk

package info (click to toggle)
mawk 1.3.4.20260129-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 2,244 kB
  • sloc: ansic: 19,998; sh: 4,627; yacc: 1,182; awk: 903; makefile: 301
file content (30 lines) | stat: -rwxr-xr-x 635 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/mawk -f
# $MawkId: eatc.awk,v 1.3 2020/09/19 11:51:23 tom Exp $
#  eatc.awk
#  another program to remove comments

{  while( ( t = index($0 , "/*") ) > 0 )
   {
     if ( t > 1 )
       printf "%s" , substr($0,1,t-1)
     $0 = eat_comment( ( t + 2 <= length($0) ) ? substr($0, t+2) : "" )
   }

   print
}


function eat_comment(s,		t2)
{
  #replace comment by one space
  printf " "

  while ( (t2 = index(s, "*/")) == 0 )
	if ( getline s == 0 )
	{ # input error -- unterminated comment
          system("/bin/sh -c 'echo unterminated comment' 1>&2")
	  exit 1
	}

  return  ( t2 + 2 <= length(s) ) ? substr(s,t2+2) : ""
}