From e5ecfde222d6b76de7320750c219960e6f6ec3ca Mon Sep 17 00:00:00 2001 From: Nathan Binkert Date: Fri, 15 Apr 2011 10:43:06 -0700 Subject: util: python implementation of a routine that will sort includes I didn't realize that the perl version existed when I started this, this version has a lot more features than the previous one since it will sort and separate python, system, and m5 headers in separate groups, it will remove duplicates, it will also convert c headers to stl headers --- util/sort-includes | 91 ------------------------------------------------------ 1 file changed, 91 deletions(-) delete mode 100755 util/sort-includes (limited to 'util/sort-includes') diff --git a/util/sort-includes b/util/sort-includes deleted file mode 100755 index 8ae40be52..000000000 --- a/util/sort-includes +++ /dev/null @@ -1,91 +0,0 @@ -#! /usr/bin/env perl -# Copyright (c) 2003 The Regents of The University of Michigan -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer; -# redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution; -# neither the name of the copyright holders nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# Authors: Steve Reinhardt - -open (FOO, "<$ARGV[0]") or die; - -# Suck in everything before the first include -# (line-by-line into @before list). -while (($_ = ) && !/^#include/) { - push @before, $_; -} - -#print join("", @before); -#print "##########################\n"; - -# Suck in include lines into @includes list. -# Skip blank lines (keep processing, but don't put in @includes). -# End on first non-blank, non-include line. -# Note that this means that files with comments or #ifdefs -# interspersed among their #includes will only get the initial -# set of #includes sorted. -do { - push @includes, $_ unless /^\s*$/; -} while (($_ = ) && /^#include|^\s*$/); - -# Now sort the includes. This simple ordering function -# puts system includes first, followed by non-system includes. -# Within each group the sort is alphabetical. -# We may want something a little more sophisticated. -# Personally, I'd like to see something like: -# - header files from sys subdir -# <*.h> - other system headers -# <*> - STL headers -# "base/*" - M5 base headers -# "sim/*" - M5 sim headers -# "*" - other M5 headers -# ...but I didn't have the energy to code that up. -sub sortorder { - my $sysa = ($a =~ /<.*>/); - my $sysb = ($b =~ /<.*>/); - return -1 if ($sysa && !$sysb); - return 1 if ($sysb && !$sysa); - return $a cmp $b; -} - -@includes = sort sortorder @includes; -#print join("", @includes); -#print "##########################\n"; - -# Put everything after the includes in the @after list. -do { - push @after, $_; - if (/^#include/) { - print "$ARGV[0]: "; - print $after[0]; - exit 0; - } -} while ($_ = ); - -#print join("", @after); -#print "##########################\n"; - -# Print out the file with sorted includes. - -print join("", @before, @includes, @after); - -- cgit v1.2.3