X-Git-Url: http://svarog.pmf.uns.ac.rs/gitweb/?p=mjc2wsl.git;a=blobdiff_plain;f=src-wsl%2Fmetrics.wsl;h=b73a4663e5b4a7f8e7d73087f603a71ec06ebf0c;hp=cec69a339d23ea1d64ca8def1f76249a08581e23;hb=3bca9a5dd50b6ccd0bdb482911f597c9182aa17d;hpb=3215eb36e56cb67d07ab2bdcf1858880897f97ac
diff --git a/src-wsl/metrics.wsl b/src-wsl/metrics.wsl
index cec69a3..b73a466 100644
--- a/src-wsl/metrics.wsl
+++ b/src-wsl/metrics.wsl
@@ -1,3 +1,22 @@
+C:"Doni Pracner (c) 2015";
+C:"
+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 3 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, see
+.
+==========================================================";
+
C:"This program generates metrics for WSL programs,
including options for comparing two programs (mainly ment to
compare different versions) and output differences as direct
@@ -8,10 +27,6 @@ command line for quick checks but also to be used for
automation and creation of CSV files for collections of
programs.";
-C:"Doni Pracner (c) 2015";
-
-C:"Released under the terms of the GPL v3 or later";
-
C:"usage {option} {filename}";
C:"Options";
@@ -42,24 +57,6 @@ C:"examples;
files in the specified file
";
-C:"
-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 3 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, see
-.
-==========================================================";
-
Field_Separator := ",";
MW_PROC @Get_New_Name(VAR str) ==
@@ -94,14 +91,14 @@ MW_PROC @Write_Metrics(metrics VAR) ==
OD
END;
-MW_PROC @Write_Metrics_List() ==
- @WS("McCabe Cyclo");@WS(Field_Separator);
- @WS("McCabe Essential");@WS(Field_Separator);
- @WS("Statements");@WS(Field_Separator);
- @WS("Expressions");@WS(Field_Separator);
- @WS("CFDF");@WS(Field_Separator);
- @WS("Size");@WS(Field_Separator);
- @WS("Structure")
+MW_PROC @Write_Metrics_List(prefix VAR) ==
+ @WS(prefix);@WS("McCabe Cyclo");@WS(Field_Separator);
+ @WS(prefix);@WS("McCabe Essential");@WS(Field_Separator);
+ @WS(prefix);@WS("Statements");@WS(Field_Separator);
+ @WS(prefix);@WS("Expressions");@WS(Field_Separator);
+ @WS(prefix);@WS("CFDF");@WS(Field_Separator);
+ @WS(prefix);@WS("Size");@WS(Field_Separator);
+ @WS(prefix);@WS("Structure")
END;
MW_PROC @Metrics_Main() ==
@@ -109,7 +106,7 @@ VAR< prog := < >,
filename:="", filename2 := "",
metrics := < >, met2 := < >,
opened := 0,
- Argv := @Argv
+ Argv := ARGV
>:
C:"First one is the script name that is being executed";
Argv := TAIL(Argv);
@@ -123,19 +120,19 @@ ELSE
PRINT("HELP - for now in the comments at the start of the script");
PRINT("options: --header or -H | -c | -HC | -o | -s");
SKIP
- ELSE IF filename = "-H" OR filename = "--header" THEN
+ ELSIF filename = "-H" OR filename = "--header" THEN
@WS("filename");@WS(Field_Separator);
- @Write_Metrics_List();
+ @Write_Metrics_List("");
@WL("");
- ELSE IF filename = "-HC" THEN
+ ELSIF filename = "-HC" THEN
C:"Header for comparison";
@WS("filename");@WS(Field_Separator);
- @Write_Metrics_List();@WS(Field_Separator);
- @Write_Metrics_List();@WS(Field_Separator);
- @WS("DIF");@Write_Metrics_List();@WS(Field_Separator);
- @WS("%");@Write_Metrics_List();
+ @Write_Metrics_List("P1-");@WS(Field_Separator);
+ @Write_Metrics_List("P2-");@WS(Field_Separator);
+ @Write_Metrics_List("DIFF-");@WS(Field_Separator);
+ @Write_Metrics_List("%-");
@WL("");
- ELSE IF filename = "-o" THEN
+ ELSIF filename = "-o" THEN
C:"set output";
IF Argv = < > THEN
PRINT("argument needed after -o")
@@ -144,14 +141,14 @@ ELSE
opened := opened + 1;
@Write_To(filename)
FI
- ELSE IF filename = "-s" THEN
+ ELSIF filename = "-s" THEN
C:"set separator";
IF Argv = < > THEN
PRINT("argument needed after -s")
ELSE
POP(Field_Separator, Argv);
FI
- ELSE IF filename = "-c" THEN
+ ELSIF filename = "-c" THEN
C:"compare two files and dump the comparison";
IF LENGTH(Argv) < 2 THEN
PRINT("two arguments needed after -c")
@@ -185,7 +182,7 @@ ELSE
@Write_Metrics(metrics);
@WL("");
SKIP
- FI FI FI FI FI FI
+ FI
OD;
C:"be nice and close all the opened writes";
FOR count := 1 TO opened STEP 1 DO