@@ -201,8 +201,8 @@ public String cgRules(CGSpec cgs, Vector rules)
201201 Vector vars = r.getVariables();
202202
203203 if (tokens.size() > terms.size())
204- { System.out.println("> " + tag + " rule " + r + " does not match " + this);
205- System.out.println("!! Too many elements on rule LHS (" + tokens.size() + ") to match subterms: (" + terms.size() + ")");
204+ { // System.out.println("> " + tag + " rule " + r + " does not match " + this);
205+ // System.out.println("!! Too many elements on rule LHS (" + tokens.size() + ") to match subterms: (" + terms.size() + ")");
206206 continue;
207207 }
208208 else if (vars.contains("_*") && terms.size() >= tokens.size())
@@ -235,7 +235,7 @@ else if (tokens.size() == terms.size())
235235 if (tokens.size() > j+1)
236236 { nextTok = (String) tokens.get(j+1); }
237237
238- System.out.println(">> End token for _* is: " + nextTok);
238+ // System.out.println(">> End token for _* is: " + nextTok);
239239 int remainingTokens = tokens.size() - (j+1);
240240
241241 boolean finished = false;
@@ -254,26 +254,26 @@ else if (remainingTokens > remainingTerms)
254254 { rem.add(pterm);
255255 k++;
256256 }
257- System.out.println(">>> Terms for _* are: " + rem);
257+ // System.out.println(">>> Terms for _* are: " + rem);
258258 }
259259 eargs.add(rem); // corresponds to _* variable
260260 }
261261 else if (vars.contains(tok))
262262 { // allocate terms(j) to tok
263263
264- System.out.println(">> Matched variable " + tok +
265- " and term " + tm);
264+ // System.out.println(">> Matched variable " + tok +
265+ // " and term " + tm);
266266 eargs.add(tm);
267267 k++;
268268 }
269269 else if (tok.equals(tm.literalForm()))
270- { System.out.println(">> Matched token " + tok +
271- " and term " + tm);
270+ { // System.out.println(">> Matched token " + tok +
271+ // " and term " + tm);
272272 k++;
273273 }
274274 else
275- { System.out.println("> " + tag + " rule " + r + " does not match " + this);
276- System.out.println(tok + " /= " + tm.literalForm());
275+ { // System.out.println("> " + tag + " rule " + r + " does not match " + this);
276+ // System.out.println(tok + " /= " + tm.literalForm());
277277 k++;
278278 failed = true; // try next rule
279279 }
@@ -10759,13 +10759,12 @@ else if ("countTokens".equals(called))
1075910759 ASTTerm.setType(thisliteral,"int");
1076010760
1076110761 if (arg.expression != null)
10762- { BasicExpression elems =
10763- BasicExpression.newBasicExpression(arg.expression,
10764- "elements");
10765- expression = new UnaryExpression("->size", elems);
10762+ { expression =
10763+ BasicExpression.newCallBasicExpression(
10764+ "length", arg.expression);
1076610765 }
1076710766
10768- return args + ".elements->size ()";
10767+ return args + ".length ()";
1076910768 }
1077010769 else if ("get".equals(called) || "elementAt".equals(called))
1077110770 { ASTTerm callarg = (ASTTerm) callterms.get(2);
@@ -10787,6 +10786,15 @@ else if ("get".equals(called) || "elementAt".equals(called))
1078710786 }
1078810787 return args + "->at(" + callp + ")";
1078910788 }
10789+ else if ("OclIterator".equals(tt))
10790+ { if (arg.expression != null &&
10791+ callarg.expression != null)
10792+ { expression =
10793+ BasicExpression.newCallBasicExpression(
10794+ "at", arg.expression, callarg.expression);
10795+ }
10796+ return args + ".at(" + callp + ")";
10797+ }
1079010798 else
1079110799 { if (arg.expression != null &&
1079210800 callarg.expression != null)
@@ -11247,7 +11255,7 @@ else if ("addAll".equals(called) && arg.isCollection())
1124711255 new AssignStatement(arg.expression, expression);
1124811256 }
1124911257
11250- return args + " := " + args + ".subrange(1, " + callp1 + ")->union(" + callp2 + ")->union(" + args + ".subrange(" + callp1 + "+1) )";
11258+ return args + " := " + args + ".insertInto( " + callp1 + "+1, " + callp2 + ")";
1125111259 }
1125211260 else
1125311261 { if (arg.expression != null &&
@@ -14453,11 +14461,11 @@ else if (arg.isDate() &&
1445314461
1445414462 if (arg.expression != null)
1445514463 { expression =
14456- BasicExpression.newBasicExpression (
14457- arg.expression, "time" );
14464+ BasicExpression.newCallBasicExpression (
14465+ "getTime", arg.expression);
1445814466 }
1445914467
14460- return args + ".time ";
14468+ return args + ".getTime() ";
1446114469 }
1446214470 else if (arg.isDate() &&
1446314471 "setTimeInMillis".equals(called))
0 commit comments