diff options
author | Patrick Georgi <patrick@georgi-clan.de> | 2010-11-12 09:46:30 +0000 |
---|---|---|
committer | Patrick Georgi <patrick.georgi@coresystems.de> | 2010-11-12 09:46:30 +0000 |
commit | e85e0c7c54aa6a3b32918fc218d585df70b23eda (patch) | |
tree | 0ebd4c2e6fe26cfa4e28c5efb0e4cc5ea675c86c /util/lint/remccoms3.sed | |
parent | ab940df3315549468e79d31d0b86874830816590 (diff) | |
download | coreboot-e85e0c7c54aa6a3b32918fc218d585df70b23eda.tar.xz |
Consensus seems that this is wanted, integrated into the tree somehow.
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
Diffstat (limited to 'util/lint/remccoms3.sed')
-rw-r--r-- | util/lint/remccoms3.sed | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/util/lint/remccoms3.sed b/util/lint/remccoms3.sed new file mode 100644 index 0000000000..477a5eacb1 --- /dev/null +++ b/util/lint/remccoms3.sed @@ -0,0 +1,102 @@ +#! /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 |