Skip to content

Commit ff9f9e9

Browse files
David AndersonDavid Anderson
authored andcommitted
added code to write additional table
1 parent d48ea1e commit ff9f9e9

2 files changed

Lines changed: 34 additions & 8 deletions

File tree

QCPAnalysis/src/QCPAnalysis/QCP4SubcaseAnalysis.rsc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public void analyzeQCP4(){
3939
println("Types of dynamic snippets: <types>");
4040
println("Counts for each type:\n <(n : size(d) | n <- groupDynamicSnippetsByType(ds), d := groupDynamicSnippetsByType(ds)[n])>");
4141
println("Counts for each role:\n <(n : size(d) | n <- groupDynamicSnippetsByRole(qcp4), d := groupDynamicSnippetsByRole(qcp4)[n])>");
42-
for(q <- groupDynamicSnippetsByRole(qcp4)["Other"]) println(q.dynamicpart@at);
42+
//for(q <- groupDynamicSnippetsByRole(qcp4)["Other"]) println(q.dynamicpart@at);
4343
}
4444

4545
public map[str, list[QuerySnippet]] groupDynamicSnippetsByType(list[QuerySnippet] ds){
@@ -71,8 +71,8 @@ public map[str, list[QuerySnippet]] groupDynamicSnippetsByType(list[QuerySnippet
7171
}
7272

7373
// groups all QCP4 occurrences based on what role their dynamic snippets take on
74-
private map[str, list[QuerySnippet]] groupDynamicSnippetsByRole(set[QueryString] qs){
75-
res = ("Parameter" : [], "Name" : [], "Other" : []);
74+
public map[str, list[QuerySnippet]] groupDynamicSnippetsByRole(set[QueryString] qs){
75+
res = ("Parameter" : [], "Column, Table, or Database Name" : [], "Other" : []);
7676
for(q <- qs){
7777
indexes = getDynamicSnippetIndexes(q);
7878

@@ -173,7 +173,7 @@ private map[str, list[QuerySnippet]] groupDynamicSnippetsByRole(set[QueryString]
173173
res["Parameter"] += ds;
174174
}
175175
else if(nameSnippet(i)){
176-
res["Name"] += ds;
176+
res["Column, Table, or Database Name"] += ds;
177177
}
178178
else{
179179
res["Other"] += ds;

QCPAnalysis/src/QCPAnalysis/WriteResults.rsc

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@ import String;
1919
import Set;
2020

2121
loc tables = |project://QCPAnalysis/results/tables/|;
22+
public void writeTables(){
23+
qs = getQCP("4");
24+
ds = getDynamicSnippets(qs);
25+
writeFile(tables + "qcpCounts.txt", qcpCountsAsLatexTable());
26+
writeFile(tables + "qcp4Types.txt", qcp4TypesAsLatexTable(ds));
27+
writeFile(tables + "qcp4Roles.txt", qcp4RolesAsLatexTable(qs));
28+
}
2229

2330
public str qcpCountsAsLatexTable(){
2431
str getLine(str pattern, int count) = "<pattern> & <count>";
@@ -42,8 +49,8 @@ public str qcpCountsAsLatexTable(){
4249
return res;
4350
}
4451

45-
public str qcp4TypesAsLatexTable(){
46-
typeGroups = groupDynamicSnippetsByType(getDynamicSnippets(getQCP("4")));
52+
public str qcp4TypesAsLatexTable(list[QuerySnippet] qs){
53+
typeGroups = groupDynamicSnippetsByType(qs);
4754
str getLine(str t, int c) = "<t> & <c>";
4855
str res =
4956
"\\npaddmissingzero
@@ -65,8 +72,27 @@ public str qcp4TypesAsLatexTable(){
6572
return res;
6673
}
6774

68-
public str qcp4RolesAsLatexTable(){
69-
75+
public str qcp4RolesAsLatexTable(set[QueryString] qs){
76+
roleGroups = groupDynamicSnippetsByRole(qs);
77+
str getLine(str r, int c) = "<r> & <c>";
78+
str res =
79+
"\\npaddmissingzero
80+
'\\npfourdigitsep
81+
'\\begin{table}
82+
'\\centering
83+
'\\caption{Counts of Each QCP4 Dynamic Part Grouped by Role\\label{tbl:php-qcp4-roles}}
84+
'\\ra{1.2}
85+
'\\begin{tabularx}{\\columnwidth}{Xrrr} \\toprule
86+
'Role & Number of Occurrences\\\\ \\midrule
87+
'<for(p <- roleGroups, c := roleGroups[p]){><getLine(p,size(c))> \\\\
88+
'<}>
89+
'\\bottomrule
90+
'\\end{tabularx}
91+
'\\end{table}
92+
'\\npfourdigitnosep
93+
'\\npnoaddmissingzero
94+
";
95+
return res;
7096
}
7197

7298
public str corpusAsLatexTable() {

0 commit comments

Comments
 (0)