Skip to content

Commit 035f3fe

Browse files
authored
Scripts vb2python, cobol2java
1 parent dbd76e7 commit 035f3fe

20 files changed

+1209
-147
lines changed

ASTBasicTerm.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,31 @@ public String tagFunction()
3131

3232
public ASTTerm removeWhitespaceTerms()
3333
{ String vtrim = value.trim();
34-
if (vtrim.equals("\\n\\r") ||
35-
vtrim.equals("\\r\\n"))
34+
if (vtrim.equals("\\r\\n") ||
35+
vtrim.equals("\\r\\n\\r\\n") ||
36+
vtrim.equals("\\r\\n\\r\\n\\r\\n") ||
37+
vtrim.equals("\\r\\n\\r\\n\\r\\n\\r\\n"))
3638
{ return null; }
39+
40+
if (vtrim.endsWith("\\r\\n\\r\\n\\r\\n"))
41+
{ String str = vtrim.substring(0,vtrim.length()-12);
42+
ASTTerm ntrm = new ASTBasicTerm(tag,str);
43+
return ntrm;
44+
}
45+
46+
if (vtrim.endsWith("\\r\\n\\r\\n"))
47+
{ String str = vtrim.substring(0,vtrim.length()-8);
48+
ASTTerm ntrm = new ASTBasicTerm(tag,str);
49+
return ntrm;
50+
}
51+
3752
if (vtrim.endsWith("\\n\\r") ||
3853
vtrim.endsWith("\\r\\n"))
3954
{ String str = vtrim.substring(0,vtrim.length()-4);
4055
ASTTerm ntrm = new ASTBasicTerm(tag,str);
4156
return ntrm;
4257
}
58+
4359
return this;
4460
}
4561

@@ -2679,6 +2695,7 @@ public int cobolDataWidth()
26792695
"/".equals(value) || "+".equals(value) ||
26802696
"-".equals(value) || "$".equals(value) ||
26812697
"£".equals(value) || ".".equals(value) ||
2698+
"V".equals(value) || "P".equals(value) ||
26822699
"Z".equals(value) || "*".equals(value))
26832700
{ return 1; }
26842701

ASTCompositeTerm.java

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -188,10 +188,22 @@ public ASTTerm removeWhitespaceTerms()
188188
String strim = str.trim();
189189
// System.out.println(">--- old term: " + str);
190190
if ("\\r\\n".equals(strim) ||
191-
"\\n\\r".equals(strim)) { }
191+
"\\r\\n\\r\\n".equals(strim) ||
192+
"\\r\\n\\r\\n\\r\\n".equals(strim) ||
193+
"\\n\\r".equals(strim))
194+
{ // System.out.println(">--- removing whitesace: " + strim);
195+
}
196+
else if (strim.endsWith("\\r\\n\\r\\n"))
197+
{ // System.out.println(">--- old term: " + strim);
198+
str = strim.substring(0,strim.length()-8);
199+
ntrm = new ASTSymbolTerm(str);
200+
// System.out.println(">--- new term: " + str);
201+
newterms.add(ntrm);
202+
}
192203
else if (strim.endsWith("\\r\\n") ||
193204
strim.endsWith("\\n\\r"))
194-
{ str = strim.substring(0,strim.length()-4);
205+
{ // System.out.println(">--- old term: " + strim);
206+
str = strim.substring(0,strim.length()-4);
195207
ntrm = new ASTSymbolTerm(str);
196208
// System.out.println(">--- new term: " + str);
197209
newterms.add(ntrm);
@@ -439,7 +451,7 @@ else if (remainingTokens > remainingTerms)
439451
matchedTerms.add(pterm);
440452
k++;
441453
}
442-
System.out.println(">>> Terms for _* are: " + rem);
454+
// System.out.println(">>> Terms for _* are: " + rem);
443455
}
444456
eargs.add(rem); // corresponds to _* variable
445457
}
@@ -476,15 +488,15 @@ else if (remainingTokens > remainingTerms)
476488
matchedTerms.add(pterm);
477489
k++;
478490
}
479-
System.out.println(">>> Terms for _+ are: " + rem);
491+
// System.out.println(">>> Terms for _+ are: " + rem);
480492
}
481493
eargs.add(rem); // corresponds to _+ variable
482494
}
483495
else if (vars.contains(tok))
484496
{ // allocate terms(j) to tok
485497

486-
System.out.println(">> Matched variable " + tok +
487-
" and term " + tm);
498+
// System.out.println(">> Matched variable " + tok +
499+
// " and term " + tm);
488500

489501
matchedTokens.add(tok);
490502
matchedTerms.add(tm);
@@ -509,8 +521,8 @@ else if (oldterm.equals(tm))
509521
}
510522
}
511523
else if (tok.equals(tm.literalForm()))
512-
{ System.out.println(">> Matched token " + tok +
513-
" and term " + tm);
524+
{ // System.out.println(">> Matched token " + tok +
525+
// " and term " + tm);
514526
matchedTerms.add(tm);
515527
matchedTokens.add(tok);
516528
k++;
@@ -525,13 +537,15 @@ else if (tok.equals(tm.literalForm()))
525537

526538
if (matchedTokens.containsAll(tokens) &&
527539
tokens.containsAll(matchedTokens))
528-
{ System.out.println("&&& All tokens matched: " + tokens); }
540+
{ // System.out.println("&&& All tokens matched: " + tokens);
541+
}
529542
// else
530543
// { failed = true; }
531544

532545
if (matchedTerms.containsAll(terms) &&
533546
terms.containsAll(matchedTerms))
534-
{ System.out.println("&&& All terms matched: " + terms); }
547+
{ // System.out.println("&&& All terms matched: " + terms);
548+
}
535549
else
536550
{ failed = true; }
537551

ASTSymbolTerm.java

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,41 @@ public String tagFunction()
2424

2525
public ASTTerm removeWhitespaceTerms()
2626
{ String strim = symbol.trim();
27+
28+
// System.out.println(">>> Trimming: " + strim);
29+
2730
if (strim.equals("\\n\\r") ||
28-
strim.equals("\\r\\n"))
29-
{ return null; }
31+
strim.equals("\\r\\n") ||
32+
strim.equals("\\r\\n\\r\\n") ||
33+
strim.equals("\\r\\n\\r\\n\\r\\n"))
34+
{ // System.out.println(">>> Trimmed: null");
35+
return null;
36+
}
37+
38+
if (strim.endsWith("\\r\\n\\r\\n\\r\\n"))
39+
{ String str = strim.substring(0, strim.length()-12);
40+
ASTTerm ntrm = new ASTSymbolTerm(str);
41+
// System.out.println(">>> Trimmed: " + str);
42+
return ntrm;
43+
}
44+
45+
if (strim.endsWith("\\r\\n\\r\\n"))
46+
{ String str = strim.substring(0, strim.length()-8);
47+
// System.out.println(">>> Trimmed: " + str);
48+
ASTTerm ntrm = new ASTSymbolTerm(str);
49+
return ntrm;
50+
}
51+
3052
if (strim.endsWith("\\n\\r") ||
3153
strim.endsWith("\\r\\n"))
3254
{ String str = strim.substring(0, strim.length()-4);
55+
// System.out.println(">>> Trimmed: " + str);
3356
ASTTerm ntrm = new ASTSymbolTerm(str);
3457
return ntrm;
3558
}
59+
60+
// System.out.println(">>> Trimmed: " + strim);
61+
3662
return this;
3763
}
3864

@@ -883,4 +909,8 @@ public Vector cobolDataDefinitions(java.util.Map context, Vector invs)
883909
return res;
884910
}
885911

912+
public static void main(String[] args)
913+
{ String ss = "\\r\\n\\r\\n\\r\\n";
914+
System.out.println(ss.matches("(\r\n)+"));
915+
}
886916
}

ASTTerm.java

Lines changed: 53 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import java.util.Vector;
1111
import java.io.*;
12+
import javax.swing.*;
1213

1314
public abstract class ASTTerm
1415
{ String id = "";
@@ -209,21 +210,24 @@ public static Vector rulesFromTagsArities(Vector tagsarities)
209210

210211
public void addStereotype(String str)
211212
{ String lit = literalForm();
212-
if (ASTTerm.metafeatures.get(lit) instanceof Vector)
213-
{
214-
Vector stereotypes =
215-
(Vector) ASTTerm.metafeatures.get(lit);
216-
if (stereotypes == null)
217-
{ stereotypes = new Vector();
218-
ASTTerm.metafeatures.put(lit,stereotypes);
219-
}
213+
Object stereo = ASTTerm.metafeatures.get(lit);
214+
Vector stereotypes = new Vector();
215+
if (stereo == null)
216+
{ ASTTerm.metafeatures.put(lit,stereotypes); }
217+
else if (!(stereo instanceof Vector))
218+
{ return; } // single-valued metafeature.
220219

221-
System.out.println(">> Adding stereotype " + str + " to " + lit);
220+
System.out.println(">++++> Adding stereotype " + str + " to " + lit);
222221

223-
if (stereotypes.contains(str)) {}
224-
else
225-
{ stereotypes.add(str); }
226-
}
222+
if (stereotypes.contains(str)) {}
223+
else
224+
{ stereotypes.add(str);
225+
ASTTerm.metafeatures.put(lit,stereotypes);
226+
}
227+
228+
// JOptionPane.showMessageDialog(null,
229+
// "*** addStereotype " + str + " to " + lit + " Metafeatures of " + lit + " are " + stereotypes, "",
230+
// JOptionPane.INFORMATION_MESSAGE);
227231
}
228232

229233
public static void addStereo(ASTTerm ast, String str)
@@ -246,10 +250,14 @@ public static void addStereo(String lit, String str)
246250

247251
if (stereotypes.contains(str)) {}
248252
else
249-
{ stereotypes.add(str); }
253+
{ stereotypes.add(str);
254+
ASTTerm.metafeatures.put(lit, stereotypes);
255+
}
250256
}
251257

252-
System.out.println("*** Metafeatures of " + lit + " are " + mfs);
258+
// JOptionPane.showMessageDialog(null,
259+
// "*** addStereo " + str + " to " + lit + " Metafeatures of " + lit + " are " + mfs, "",
260+
// JOptionPane.INFORMATION_MESSAGE);
253261
}
254262

255263
public static void setTaggedValue(ASTTerm ast, String mf, String val)
@@ -291,17 +299,20 @@ public static void setTaggedValue(String lit, String mf, String val)
291299

292300
public void removeStereotype(String str)
293301
{ String lit = literalForm();
294-
if (ASTTerm.metafeatures.get(lit) instanceof Vector)
302+
303+
Object mfs = ASTTerm.metafeatures.get(lit);
304+
if (mfs == null)
305+
{ mfs = new Vector();
306+
ASTTerm.metafeatures.put(lit,mfs);
307+
}
308+
309+
if (mfs instanceof Vector)
295310
{
296-
Vector stereotypes =
297-
(Vector) ASTTerm.metafeatures.get(lit);
298-
if (stereotypes == null)
299-
{ stereotypes = new Vector();
300-
ASTTerm.metafeatures.put(lit,stereotypes);
301-
}
311+
Vector stereotypes = (Vector) mfs;
302312
Vector removed = new Vector();
303313
removed.add(str);
304-
stereotypes.removeAll(removed);
314+
stereotypes.removeAll(removed);
315+
ASTTerm.metafeatures.put(lit,stereotypes);
305316
}
306317
}
307318

@@ -322,15 +333,15 @@ public static void removeStereo(String lit, String str)
322333

323334
public boolean hasStereotype(String str)
324335
{ String lit = literalForm();
325-
if (ASTTerm.metafeatures.get(lit) instanceof Vector)
326-
{ Vector stereotypes =
327-
(Vector) ASTTerm.metafeatures.get(lit);
328-
if (stereotypes == null)
329-
{ stereotypes = new Vector();
330-
ASTTerm.metafeatures.put(lit,stereotypes);
331-
}
336+
Object mfs = ASTTerm.metafeatures.get(lit);
337+
if (mfs == null)
338+
{ return false; }
339+
340+
if (mfs instanceof Vector)
341+
{ Vector stereotypes = (Vector) mfs;
332342
return stereotypes.contains(str);
333343
}
344+
334345
return false;
335346
}
336347

@@ -353,6 +364,18 @@ public static void setStereotypeValue(String lit, String val)
353364
ASTTerm.metafeatures.put(lit,val);
354365
}
355366

367+
public static Vector getStereotypes(String lit)
368+
{ Object mfs = ASTTerm.metafeatures.get(lit);
369+
if (mfs == null)
370+
{ return new Vector(); }
371+
if (mfs instanceof Vector)
372+
{ return (Vector) mfs; }
373+
return null;
374+
}
375+
376+
public static Vector getStereotypes(ASTTerm t)
377+
{ return getStereotypes(t.literalForm()); }
378+
356379
public static boolean hasTaggedValue(ASTTerm trm, String str)
357380
{ String lit = trm.literalForm();
358381
System.out.println("*** " + lit + " has tagged values: " +

0 commit comments

Comments
 (0)