diff options
author | Tobias Klauser <tklauser@distanz.ch> | 2008-01-27 11:37:44 +0100 |
---|---|---|
committer | Tobias Klauser <tklauser@xenon.tklauser.home> | 2008-01-27 11:37:44 +0100 |
commit | 7e0f021a9aec35fd8e6725e87e3313b101d26f5e (patch) | |
tree | b1cacc4b24393f517aeb4610e9e1021f954307a8 /reference/C/CONTRIB/SNIP/c_lines.awk |
Initial import (2.0.2-6)2.0.2-6
Diffstat (limited to 'reference/C/CONTRIB/SNIP/c_lines.awk')
-rwxr-xr-x | reference/C/CONTRIB/SNIP/c_lines.awk | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/reference/C/CONTRIB/SNIP/c_lines.awk b/reference/C/CONTRIB/SNIP/c_lines.awk new file mode 100755 index 0000000..219138c --- /dev/null +++ b/reference/C/CONTRIB/SNIP/c_lines.awk @@ -0,0 +1,43 @@ +# count lines in a C program, not counting comments, blank lines or
+# form feeds
+# does separate count of preprocessor directives
+# if a preprocessor directive is commented out, it does not count
+#
+# By: Dan Kozak
+
+{
+ if (file == "") {
+ file = FILENAME
+ }
+ if (file != FILENAME) {
+ printf("Number of lines in %s is: %d\n",file,nl+ppd)
+ printf("Number of preprocessor directives is: %d\n",ppd)
+ printf("Number of lines excluding preprocessor directives is: %d\n\n",nl)
+ file = FILENAME
+ tnl += nl
+ tppd += ppd
+ nl = 0
+ ppd = 0
+ }
+
+ if ($0 == "") { ; }
+ else if ($1 ~ /^\/\*/ && $NF ~ /\*\/$/) { ; }
+ else if ($0 ~ /\/\*/ && $0 !~ /\*\//) { in_comment = 1 }
+ else if ($0 !~ /\/\*/ && $0 ~ /\*\//) { in_comment = 0 }
+ else if (in_comment) { ; }
+ else if ($1 ~ /^#/) { ppd++ }
+ else { nl++ }
+}
+
+END { printf("Number of lines in %s is: %d\n",file,nl+ppd)
+ printf("Number of preprocessor directives is: %d\n",ppd)
+ printf("Number of lines excluding preprocessor directives is:
+%d\n\n",nl)
+ file = FILENAME
+ tnl += nl
+ tppd += ppd
+ printf("Total number of lines is: %d\n",tnl+tppd)
+ printf("Number of preprocessor directives is: %d\n",tppd)
+ printf("Number of lines excluding preprocessor directives is:
+%d\n",tnl)
+ }
|