diff options
author | David A. Wheeler <dwheeler@dwheeler.com> | 2013-09-02 19:55:41 -0400 |
---|---|---|
committer | David A. Wheeler <dwheeler@dwheeler.com> | 2013-09-02 19:55:41 -0400 |
commit | a39f7af19f788e5dd6159d532a8dc6eaa4539759 (patch) | |
tree | 3b4f8af0c0fba6bbf9f8ecba0e69ad25f1e871bd | |
parent | 8ff6e9798f9909594ad497bc70d39a3cf3bbf2e9 (diff) | |
download | sloccount-git-a39f7af19f788e5dd6159d532a8dc6eaa4539759.tar.gz |
Add support for AutoIt3/AutoHotKey scripts/macros [by Sven Strickroth (MrTux)]
- Add support for autoit3 and autohotkey macros/scripts
- See: https://sourceforge.net/p/sloccount/patches/10/
-rw-r--r-- | autohotkey_count | 95 | ||||
-rw-r--r-- | autoit_count | 90 | ||||
-rwxr-xr-x | break_filelist | 3 | ||||
-rw-r--r-- | makefile | 2 | ||||
-rw-r--r-- | makefile.orig | 1 |
5 files changed, 191 insertions, 0 deletions
diff --git a/autohotkey_count b/autohotkey_count new file mode 100644 index 0000000..84dcedd --- /dev/null +++ b/autohotkey_count @@ -0,0 +1,95 @@ +#!/usr/bin/perl +# autohotkey_count - count physical lines of code in AutoHotKey scripts. +# Usage: autohotkey_count [-f file] [list_of_files] +# file: file with a list of files to count (if "-", read list from stdin) +# list_of_files: list of files to count +# -f file or list_of_files can be used, or both + +# This is part of SLOCCount, a toolsuite that counts +# source lines of code (SLOC). +# Copyright (C) 2008 Sven Strickroth, email@cs-ware.de. +# Copyright (C) 2001-2004 David A. Wheeler. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# To contact David A. Wheeler, see his website at: +# http://www.dwheeler.com. +# +# + +$total_sloc = 0; + +# Do we have "-f" (read list of files from second argument)? +if (($#ARGV >= 1) && ($ARGV[0] eq "-f")) { + # Yes, we have -f + if ($ARGV[1] eq "-") { + # The list of files is in STDIN + while (<STDIN>) { + chomp ($_); + &count_file ($_); + } + } else { + # The list of files is in the file $ARGV[1] + open (FILEWITHLIST, $ARGV[1]) || die "Error: Could not open $ARGV[1]\n"; + while (<FILEWITHLIST>) { + chomp ($_); + &count_file ($_); + } + close FILEWITHLIST; + } + shift @ARGV; shift @ARGV; +} +# Process all (remaining) arguments as file names +while ($file = shift @ARGV) { + &count_file ($file); +} + +print "Total:\n"; +print "$total_sloc\n"; + +sub count_file { + my ($file) = @_; + my $sloc = 0; + my $commentstart = ';'; + my $commentedout = 0; + + open (FILE, $file); + while (<FILE>) { + s/$commentstart.*//; # Delete leading comments. + if (m/^\/*/) { + $commentedout = 1; + next; + } elsif (m/^*\//) { + $commentedout = 0; + next; + } elsif ($commentedout == 1) { + next; + } + if (m/#CommentFlag( |\t)+([^ ]{1,15})/i) { + $commentstart = $2; + next; + } + if (m/\S/) {$sloc++;} + + } + # Show per-file & total; reset $isinpod per file. + print "$sloc $file\n"; + $total_sloc += $sloc; + $sloc = 0; + close (FILE); + #Rest + $commentedout = 0; +} + diff --git a/autoit_count b/autoit_count new file mode 100644 index 0000000..a6390ee --- /dev/null +++ b/autoit_count @@ -0,0 +1,90 @@ +#!/usr/bin/perl +# autoit_count - count physical lines of code in AutoIt v3 scripts. +# Usage: autoit_count [-f file] [list_of_files] +# file: file with a list of files to count (if "-", read list from stdin) +# list_of_files: list of files to count +# -f file or list_of_files can be used, or both + +# This is part of SLOCCount, a toolsuite that counts +# source lines of code (SLOC). +# Copyright (C) 2008 Sven Strickroth, email@cs-ware.de. +# Copyright (C) 2001-2004 David A. Wheeler. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# To contact David A. Wheeler, see his website at: +# http://www.dwheeler.com. +# +# + +$total_sloc = 0; + +# Do we have "-f" (read list of files from second argument)? +if (($#ARGV >= 1) && ($ARGV[0] eq "-f")) { + # Yes, we have -f + if ($ARGV[1] eq "-") { + # The list of files is in STDIN + while (<STDIN>) { + chomp ($_); + &count_file ($_); + } + } else { + # The list of files is in the file $ARGV[1] + open (FILEWITHLIST, $ARGV[1]) || die "Error: Could not open $ARGV[1]\n"; + while (<FILEWITHLIST>) { + chomp ($_); + &count_file ($_); + } + close FILEWITHLIST; + } + shift @ARGV; shift @ARGV; +} +# Process all (remaining) arguments as file names +while ($file = shift @ARGV) { + &count_file ($file); +} + +print "Total:\n"; +print "$total_sloc\n"; + +sub count_file { + my ($file) = @_; + my $sloc = 0; + my $commentedout = 0; + + open (FILE, $file); + while (<FILE>) { + s/;.*//; # Delete leading comments. + if (m/(^|( |\t)+)#(cs|comments-start)/) { + $commentedout++; + s/.*#(cs|comments-start)//; + } elsif (m/(^|( |\t)+)#(ce|comments-end)/) { + $commentedout--; + s/.*#(ce|comments-end)//; + } elsif ($commentedout > 0) { + next; + } + if (m/\S/) {$sloc++;} + + } + # Show per-file & total; reset $isinpod per file. + print "$sloc $file\n"; + $total_sloc += $sloc; + $sloc = 0; + close (FILE); + #Rest + $commentedout = 0; +} + diff --git a/break_filelist b/break_filelist index 877051f..3ce65a3 100755 --- a/break_filelist +++ b/break_filelist @@ -208,6 +208,9 @@ $noisy = 0; # Set to 1 if you want noisy reports. "bas" => "vbasic", "frm" => "vbasic", "cls" => "vbasic", "dsr" => "vbasic", "vbs" => "vbscript", "wsh" => "vbscript", "js" => "javascript", + "ahk" => "autohotkey", + "au3" => "autoit", + # Add more files here ); @@ -88,6 +88,8 @@ EXECUTABLES= \ ada_count \ asm_count \ awk_count \ + autohotkey_count \ + autoit_count \ vbasic_count \ break_filelist \ cobol_count \ diff --git a/makefile.orig b/makefile.orig index cc5b21c..aafb5c0 100644 --- a/makefile.orig +++ b/makefile.orig @@ -120,6 +120,7 @@ EXECUTABLES= \ sloccount \ sql_count \ tcl_count \ + vbscript_count \ $(COMPILED_EXECUTABLES) MANPAGES=sloccount.1.gz |