diff --git a/src/translator/ADParallel.java b/src/translator/ADParallel.java index 10a562343c4c023e90f80ad57f9868822104393b..f7a9706a9dfa4797638b901e6a8fc2bbeeb9e6ae 100755 --- a/src/translator/ADParallel.java +++ b/src/translator/ADParallel.java @@ -143,6 +143,9 @@ public class ADParallel extends ADComponent implements NonBlockingADComponent, M } public int nbGate() { + if (synchroGate == null) { + return 0; + } return synchroGate.size(); } diff --git a/src/translator/TURTLEModelChecker.java b/src/translator/TURTLEModelChecker.java index 76381067732a8acee2d694b885ba1096f531d0cf..fc2b5826a59f67042069aa98c4f0988f43835047 100755 --- a/src/translator/TURTLEModelChecker.java +++ b/src/translator/TURTLEModelChecker.java @@ -397,8 +397,10 @@ public class TURTLEModelChecker { } action = ((ADActionStateWithGate)ad1).getActionValue(); - if (action.length() > 0) { + if ((action!= null) && (action.length() > 0)) { parsing(t, ad1, "actiongate", action, errors); + } else { + System.out.println("null action on gate=" + ((ADActionStateWithGate)ad1).getGate().getName() + action); } } else if (ad1 instanceof ADActionStateWithParam) { diff --git a/src/translator/TURTLEModeling.java b/src/translator/TURTLEModeling.java index 87e5e3f6c3e25537cd803dfff9162fecb9001303..5d4c40d8b168647a361bc2bc48a1d5cc2f72643e 100755 --- a/src/translator/TURTLEModeling.java +++ b/src/translator/TURTLEModeling.java @@ -797,19 +797,25 @@ public class TURTLEModeling { } if (index2 == -1) { index2 = index3; + } + index4 = Math.min(index1, index2); index4 = Math.min(index4, index3); if (index4 > 0) { paramName = s.substring(index+1, index4+index+1); paramName = paramName.trim(); - if (paramName.indexOf(':') == -1) { - p = t.getParamByName(paramName); - if (p != null) { - paramName = paramName + ":" + p.getType(); - } else { - return null; + try { + int x = Integer.decode(paramName).intValue(); + } catch (Exception e) { + if (paramName.indexOf(':') == -1) { + p = t.getParamByName(paramName); + if (p != null) { + paramName = paramName + ":" + p.getType(); + } else { + return null; + } } } ret = ret + c + paramName; diff --git a/src/translator/touppaal/TURTLE2UPPAAL.java b/src/translator/touppaal/TURTLE2UPPAAL.java index 4387468a7bd8fc978e7a262826b5b6e8c6652aaf..b3c259043e2235cffdd20c58f22a9e00cef99950 100755 --- a/src/translator/touppaal/TURTLE2UPPAAL.java +++ b/src/translator/touppaal/TURTLE2UPPAAL.java @@ -530,7 +530,7 @@ public class TURTLE2UPPAAL { template.addDeclaration(p.getName() + " = " + p.getValue() + ";\n"); } - //template.addDeclaration("int waitgroupid__;\n"); + template.addDeclaration("int waitgroupid__;\n"); template.addDeclaration("clock h__;\n"); for(Gate g:gatesWithInternalSynchro) { @@ -2252,6 +2252,7 @@ public class TURTLE2UPPAAL { while(iterator.hasNext()) { template = (UPPAALTemplate)(iterator.next()); t = tm.getTClassWithName(template.getName()); + System.out.println("temp=" + template.getName()); if (t != null) { if (templatesWithMultipleProcesses.contains(template)) { table.setIds(template, id, id+nb-1); @@ -2270,6 +2271,7 @@ public class TURTLE2UPPAAL { table.setIds(template, id, id); id += nb; } else { + //System.out.println("temp=" + template.getName()); dec += template.getName() + "__" + id + " = " + template.getName() + "();\n"; system += template.getName() + "__" + id; table.setIds(template, id, id); @@ -2277,6 +2279,8 @@ public class TURTLE2UPPAAL { } } } else { + System.out.println("temp=" + template.getName()); + template.removeParameter(); dec += template.getName() + "__" + id + " = " + template.getName() + "();\n"; system += template.getName() + "__" + id; } diff --git a/src/ui/DesignPanelTranslator.java b/src/ui/DesignPanelTranslator.java index 00e17cafb192fcf7d4fc72d888b5f7d1a75a578b..166817e8639ffdfe103c376e0a2e94cfffb4184c 100755 --- a/src/ui/DesignPanelTranslator.java +++ b/src/ui/DesignPanelTranslator.java @@ -359,11 +359,11 @@ public class DesignPanelTranslator { g = t.getGateFromActionState(s); p = t.getParamFromActionState(s); if ((g != null) && (nbActions == 1)){ - //System.out.println("Action state with gate found " + g.getName() + " value:" + t.getActionValueFromActionState(s)); + System.out.println("Action state with gate found " + g.getName() + " value:" + t.getActionValueFromActionState(s)); adag = new ADActionStateWithGate(g); ad.addElement(adag); s1 = t.getActionValueFromActionState(s); - //System.out.println("s1=" + s1); + System.out.println("s1=" + s1); /*if (s1 == null) { System.out.println("oh ho !"); }*/ @@ -380,7 +380,7 @@ public class DesignPanelTranslator { return; } s1 = TURTLEModeling.addTypeToDataReceiving(t, s1); - //System.out.println("Adding type done s1=" + s1); + System.out.println("Adding type done s1=" + s1); adag.setActionValue(s1); listE.addCor(adag, tgc); } else if ((p != null) && (nbActions == 1)){ diff --git a/src/uppaaldesc/UPPAALTemplate.java b/src/uppaaldesc/UPPAALTemplate.java index 6b38b5f93e66850f4fa4b93fa1153be6bbc39cca..a7bef78701715d29bdc1286a513a435758650141 100755 --- a/src/uppaaldesc/UPPAALTemplate.java +++ b/src/uppaaldesc/UPPAALTemplate.java @@ -96,6 +96,12 @@ public class UPPAALTemplate { parameter += _dec; } + public void removeParameter() { + parameter = ""; + } + + + public void setInitLocation(UPPAALLocation _loc) { initLocation = _loc; }