1 module checker
is aliced
;
12 // ////////////////////////////////////////////////////////////////////////// //
13 void main (string
[] args
) {
16 bool dumpFileNames
= false;
17 bool styleWarnings
= false;
18 bool doScripts
= true, doActions
= true;
19 bool warnVars
= false;
20 bool warnWith
= false;
25 foreach (string fname
; args
[1..$]) {
31 if (fname
.length
== 0) continue;
32 if (fname
== "--") { nomore
= true; continue; }
33 if (fname
== "-d") { dumpFileNames
= true; continue; }
34 if (fname
== "-w") { styleWarnings
= true; continue; }
35 if (fname
== "-S") { doScripts
= false; continue; }
36 if (fname
== "-A") { doActions
= false; continue; }
37 if (fname
== "-wall") {
43 if (fname
== "-wvardecl") { warnVars
= true; continue; }
44 if (fname
== "-wwith") { warnWith
= true; continue; }
45 if (fname
== "-wass") { warnAss
= true; continue; }
46 if (fname
[0] == '@') {
47 if (fname
.length
< 2) assert(0, "gmk file?");
48 auto gmk
= new Gmk(fname
[1..$]);
49 funcs
~= gmkLoadScripts(gmk
, doScripts
:doScripts
, doActions
:doActions
);
53 foreach (auto de; dirEntries(fname
, "*.gm[lx]", SpanMode
.breadth
)) {
55 foreach (auto pt
; pathSplitter(de.dirName
)) {
56 if (pt
.length
&& pt
[0] == '_') { doit
= false; break; }
59 if (dumpFileNames
) { import std
.stdio
; writeln("loading '", de.name
, "'..."); }
60 funcs
~= loadScript(de.name
, true);
64 if (dumpFileNames
) { import std
.stdio
; writeln("loading '", fname
, "'..."); }
65 funcs
~= loadScript(fname
, true);
70 if (funcs
.length
> 0) {
71 writeln(funcs
.length
, " function", (funcs
.length
> 1 ?
"s" : ""), " parsed");
72 foreach (auto fn
; funcs
) {
73 if (warnVars
) {analVars(fn
);
75 foreach (string name
; [
86 if (fn
.name
== name
) { skip
= true; break; }
88 if (!skip
&& fn
.name
.length
> 3 && fn
.name
[0..3] == "sui") skip
= true;
89 if (!skip
) analVars(fn
);
91 if (warnWith
) analWith(fn
);
92 if (warnAss
) analAss(fn
);