This isn't hooked up anywhere, so won't affect anything, except for developers trying to remove configuration #defines. Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Acked-by: Patrick Georgi <patrick@georgi-clan.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6065 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
		
			
				
	
	
		
			103 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Sed
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Sed
		
	
	
	
	
	
| #! /bin/sed -nf
 | |
| 
 | |
| # Remove C and C++ comments, by Brian Hiles (brian_hiles@rocketmail.com)
 | |
| 
 | |
| # Sped up (and bugfixed to some extent) by Paolo Bonzini (bonzini@gnu.org)
 | |
| # Works its way through the line, copying to hold space the text up to the
 | |
| # first special character (/, ", ').  The original version went exactly a
 | |
| # character at a time, hence the greater speed of this one.  But the concept
 | |
| # and especially the trick of building the line in hold space are entirely
 | |
| # merit of Brian.
 | |
| 
 | |
| # Taken from http://sed.sourceforge.net/grabbag/scripts/remccoms3.sed
 | |
| # According to http://sed.sourceforge.net/grabbag/ it's in the public domain
 | |
| # Changes:
 | |
| # 2010-11-06: Remove strings
 | |
| 
 | |
| :loop
 | |
| 
 | |
| # This line is sufficient to remove C++ comments!
 | |
| /^\/\// s,.*,,
 | |
| 
 | |
| # addition for coreboot-lint: For our purpose we don't need strings
 | |
| s,"[^"]*",,g
 | |
| 
 | |
| /^$/{
 | |
|   x
 | |
|   p
 | |
|   n
 | |
|   b loop
 | |
| }
 | |
| /^"/{
 | |
|   :double
 | |
|   /^$/{
 | |
|     x
 | |
|     p
 | |
|     n
 | |
|     /^"/b break
 | |
|     b double
 | |
|   }
 | |
| 
 | |
|   H
 | |
|   x
 | |
|   s,\n\(.[^\"]*\).*,\1,
 | |
|   x
 | |
|   s,.[^\"]*,,
 | |
|   
 | |
|   /^"/b break
 | |
|   /^\\/{
 | |
|     H
 | |
|     x
 | |
|     s,\n\(.\).*,\1,
 | |
|     x
 | |
|     s/.//
 | |
|   }
 | |
|   b double
 | |
| }
 | |
| 
 | |
| /^'/{
 | |
|   :single
 | |
|   /^$/{
 | |
|     x
 | |
|     p
 | |
|     n
 | |
|     /^'/b break
 | |
|     b single
 | |
|   }
 | |
|   H
 | |
|   x
 | |
|   s,\n\(.[^\']*\).*,\1,
 | |
|   x
 | |
|   s,.[^\']*,,
 | |
|   
 | |
|   /^'/b break
 | |
|   /^\\/{
 | |
|     H
 | |
|     x
 | |
|     s,\n\(.\).*,\1,
 | |
|     x
 | |
|     s/.//
 | |
|   }
 | |
|   b single
 | |
| }
 | |
| 
 | |
| /^\/\*/{
 | |
|   s/.//
 | |
|   :ccom
 | |
|   s,^.[^*]*,,
 | |
|   /^$/ n
 | |
|   /^\*\//{
 | |
|     s/..//
 | |
|     b loop
 | |
|   }
 | |
|   b ccom
 | |
| }
 | |
| 
 | |
| :break
 | |
| H
 | |
| x
 | |
| s,\n\(.[^"'/]*\).*,\1,
 | |
| x
 | |
| s/.[^"'/]*//
 | |
| b loop
 |