Skip to content

Commit 37de172

Browse files
committed
fixed .value.value issue
1 parent 679667d commit 37de172

12 files changed

+89
-25
lines changed

asmetal2java_codegen/src/org/asmeta/asm2java/RuleToJava.xtend

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,10 +166,15 @@ class RuleToJava extends RuleVisitor<String> {
166166
append('''«new TermToJava(res,true).visit(object.location)» = «new TermToJava(res,false).visit(object.updatingTerm)»;
167167
168168
''')
169-
else if (object.updatingTerm.domain instanceof ConcreteDomain)
169+
/*else if (object.updatingTerm.domain instanceof ConcreteDomain)
170170
result.
171171
append('''«new TermToJava(res,true).visit(object.location)»«new TermToJava(res,false).visit(object.updatingTerm)».value);
172172
«new TermToJavaInUpdateRule(res,false).visit(object.location)»
173+
''')*/
174+
else if (object.updatingTerm.domain instanceof ConcreteDomain)
175+
result.
176+
append('''«new TermToJava(res,true).visit(object.location)»«new TermToJava(res,false).visit(object.updatingTerm)»);
177+
«new TermToJavaInUpdateRule(res,false).visit(object.location)»
173178
''')
174179
else {
175180
var String varName = object.hashCode.toString

asmetal2java_codegen/src/org/asmeta/asm2java/TermToJava.xtend

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,11 @@ class TermToJava extends ReflectiveVisitor<String> {
233233
'''
234234
«"Arrays.stream("» «new ToString(res).visit((object.getRanges.get(i).domain as PowersetDomain).baseDomain)».values()).anyMatch(c -> «valore»c))
235235
''')
236+
else if ((object.getRanges.get(i).domain as PowersetDomain).baseDomain instanceof ConcreteDomain) // devo togliere il .value aggiunto in TermToJavaStandardLibrary.xtend (riga 102)
237+
sb.append(
238+
'''
239+
«""» «new ToString(res).visit((object.getRanges.get(i).domain as PowersetDomain).baseDomain)».elems.stream().anyMatch(c -> c.equals(«app.substring(13,app.length-7)»))
240+
''')
236241
else
237242
sb.append(
238243
'''
@@ -371,9 +376,13 @@ class TermToJava extends ReflectiveVisitor<String> {
371376
var name = new Util().parseFunction(term.function.name)
372377

373378
// Controllo se l'operatore » del tipo: &,|,<=,>=,<,>...
374-
if (ExpressionToJava.hasEvaluateVisitor(name)) {
379+
/*if (ExpressionToJava.hasEvaluateVisitor(name)) {
380+
// if the funcion is an expression
381+
return new ExpressionToJava(res).evaluateFunction(name, term.arguments.terms);*/
382+
if (ExpressionToJava.hasEvaluateVisitor(name)) { // utilizzo questo if per correggere il problema di avere due .value.value
375383
// if the funcion is an expression
376-
return new ExpressionToJava(res).evaluateFunction(name, term.arguments.terms);
384+
var expression = new ExpressionToJava(res).evaluateFunction(name, term.arguments.terms);
385+
return expression.replaceAll(".value.value",".value")
377386
} // In questo caso l'operatore rilevato » :=
378387
else {
379388

asmetal2java_codegen/src/org/asmeta/asm2java/main/JavaASMGenerator2.xtend

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,8 +262,8 @@ class JavaASMGenerator2 extends AsmToJavaGenerator {
262262
else{ // fd.domain != null
263263
for(dd : asm.headerSection.signature.domain){
264264
if(dd.equals(fd.domain)){
265+
sb.append("\t").append('''private void cover_«fd.name»(){''');
265266
if(dd instanceof EnumTd){
266-
sb.append("\t").append('''private void cover_«fd.name»(){''');
267267
for (var int i = 0; i < dd.element.size; i++) {
268268
var symbol = new ToString(asm).visit(dd.element.get(i))
269269
sb.append(System.lineSeparator)
@@ -276,6 +276,16 @@ class JavaASMGenerator2 extends AsmToJavaGenerator {
276276
sb.append(System.lineSeparator)
277277
sb.append(System.lineSeparator)
278278
}
279+
else {
280+
sb.append(System.lineSeparator)
281+
sb.append("\t\t").append('''this.get_«fd.name»();''');
282+
sb.append(System.lineSeparator)
283+
sb.append("\t\t").append('''//1 Branch covered''');
284+
}
285+
sb.append(System.lineSeparator)
286+
sb.append("\t").append('''}''');
287+
sb.append(System.lineSeparator)
288+
sb.append(System.lineSeparator)
279289
}
280290
}
281291
}
Binary file not shown.
Binary file not shown.

asmetal2java_codegen/xtend-gen/org/asmeta/asm2java/RuleToJava.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ public String visit(final UpdateRule object) {
284284
_builder_1.append(_visit_2);
285285
String _visit_3 = new TermToJava(this.res, false).visit(object.getUpdatingTerm());
286286
_builder_1.append(_visit_3);
287-
_builder_1.append(".value);");
287+
_builder_1.append(");");
288288
_builder_1.newLineIfNotEmpty();
289289
_builder_1.append("\t\t\t ");
290290
String _visit_4 = new TermToJavaInUpdateRule(this.res, false).visit(object.getLocation());

asmetal2java_codegen/xtend-gen/org/asmeta/asm2java/TermToJava.java

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -376,19 +376,37 @@ public String visit(final ExistTerm object) {
376376
_builder_2.newLineIfNotEmpty();
377377
sb.append(_builder_2);
378378
} else {
379-
StringConcatenation _builder_3 = new StringConcatenation();
380-
_builder_3.append("\t");
381379
Domain _domain_4 = object.getRanges().get(i).getDomain();
382-
String _visit_3 = new ToString(this.res).visit(((PowersetDomain) _domain_4).getBaseDomain());
383-
_builder_3.append(_visit_3);
384-
_builder_3.append(".elems.stream().anyMatch(c -> c.equals(");
385-
int _length_1 = app.length();
386-
int _minus_1 = (_length_1 - 1);
387-
String _substring_1 = app.substring(13, _minus_1);
388-
_builder_3.append(_substring_1);
389-
_builder_3.append("))");
390-
_builder_3.newLineIfNotEmpty();
391-
sb.append(_builder_3);
380+
Domain _baseDomain_2 = ((PowersetDomain) _domain_4).getBaseDomain();
381+
if ((_baseDomain_2 instanceof ConcreteDomain)) {
382+
StringConcatenation _builder_3 = new StringConcatenation();
383+
_builder_3.append("\t");
384+
Domain _domain_5 = object.getRanges().get(i).getDomain();
385+
String _visit_3 = new ToString(this.res).visit(((PowersetDomain) _domain_5).getBaseDomain());
386+
_builder_3.append(_visit_3);
387+
_builder_3.append(".elems.stream().anyMatch(c -> c.equals(");
388+
int _length_1 = app.length();
389+
int _minus_1 = (_length_1 - 7);
390+
String _substring_1 = app.substring(13, _minus_1);
391+
_builder_3.append(_substring_1);
392+
_builder_3.append("))");
393+
_builder_3.newLineIfNotEmpty();
394+
sb.append(_builder_3);
395+
} else {
396+
StringConcatenation _builder_4 = new StringConcatenation();
397+
_builder_4.append("\t");
398+
Domain _domain_6 = object.getRanges().get(i).getDomain();
399+
String _visit_4 = new ToString(this.res).visit(((PowersetDomain) _domain_6).getBaseDomain());
400+
_builder_4.append(_visit_4);
401+
_builder_4.append(".elems.stream().anyMatch(c -> c.equals(");
402+
int _length_2 = app.length();
403+
int _minus_2 = (_length_2 - 1);
404+
String _substring_2 = app.substring(13, _minus_2);
405+
_builder_4.append(_substring_2);
406+
_builder_4.append("))");
407+
_builder_4.newLineIfNotEmpty();
408+
sb.append(_builder_4);
409+
}
392410
}
393411
}
394412
}
@@ -622,7 +640,8 @@ public String visit(final FunctionTerm term) {
622640
String name = new Util().parseFunction(term.getFunction().getName());
623641
boolean _hasEvaluateVisitor = ExpressionToJava.hasEvaluateVisitor(name);
624642
if (_hasEvaluateVisitor) {
625-
return new ExpressionToJava(this.res).evaluateFunction(name, term.getArguments().getTerms());
643+
String expression = new ExpressionToJava(this.res).evaluateFunction(name, term.getArguments().getTerms());
644+
return expression.replaceAll(".value.value", ".value");
626645
} else {
627646
if (((term.getFunction() instanceof ControlledFunction) && (term.getDomain() instanceof ConcreteDomain))) {
628647
functionTerm.append(this.caseFunctionTermSuppCont(term.getFunction(), term));
Binary file not shown.

asmetal2java_codegen/xtend-gen/org/asmeta/asm2java/main/JavaASMGenerator2.java

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -452,14 +452,14 @@ public void coverBranches(final Asm asm, final StringBuffer sb) {
452452
for (final Domain dd_1 : _domain_2) {
453453
boolean _equals_1 = dd_1.equals(fd.getDomain());
454454
if (_equals_1) {
455+
StringBuffer _append_5 = sb.append("\t");
456+
StringConcatenation _builder_6 = new StringConcatenation();
457+
_builder_6.append("private void cover_");
458+
String _name_3 = fd.getName();
459+
_builder_6.append(_name_3);
460+
_builder_6.append("(){");
461+
_append_5.append(_builder_6);
455462
if ((dd_1 instanceof EnumTd)) {
456-
StringBuffer _append_5 = sb.append("\t");
457-
StringConcatenation _builder_6 = new StringConcatenation();
458-
_builder_6.append("private void cover_");
459-
String _name_3 = fd.getName();
460-
_builder_6.append(_name_3);
461-
_builder_6.append("(){");
462-
_append_5.append(_builder_6);
463463
for (int i = 0; (i < ((EnumTd)dd_1).getElement().size()); i++) {
464464
{
465465
String symbol = new ToString(asm).visit(((EnumTd)dd_1).getElement().get(i));
@@ -490,7 +490,28 @@ public void coverBranches(final Asm asm, final StringBuffer sb) {
490490
_append_7.append(_builder_8);
491491
sb.append(System.lineSeparator());
492492
sb.append(System.lineSeparator());
493+
} else {
494+
sb.append(System.lineSeparator());
495+
StringBuffer _append_8 = sb.append("\t\t");
496+
StringConcatenation _builder_9 = new StringConcatenation();
497+
_builder_9.append("this.get_");
498+
String _name_4 = fd.getName();
499+
_builder_9.append(_name_4);
500+
_builder_9.append("();");
501+
_append_8.append(_builder_9);
502+
sb.append(System.lineSeparator());
503+
StringBuffer _append_9 = sb.append("\t\t");
504+
StringConcatenation _builder_10 = new StringConcatenation();
505+
_builder_10.append("//1 Branch covered");
506+
_append_9.append(_builder_10);
493507
}
508+
sb.append(System.lineSeparator());
509+
StringBuffer _append_10 = sb.append("\t");
510+
StringConcatenation _builder_11 = new StringConcatenation();
511+
_builder_11.append("}");
512+
_append_10.append(_builder_11);
513+
sb.append(System.lineSeparator());
514+
sb.append(System.lineSeparator());
494515
}
495516
}
496517
}

0 commit comments

Comments
 (0)