From 965762823cf00f947aa6fa0e30982fd368cb0037 Mon Sep 17 00:00:00 2001 From: Ludovic Apvrille <ludovic.apvrille@telecom-paristech.fr> Date: Wed, 28 Jul 2010 13:38:54 +0000 Subject: [PATCH] DIPLODOCUS: Update on multiple params supported by events --- src/tmltranslator/touppaal/TML2UPPAAL.java | 1 + src/translator/TClassEventFinite.java | 36 ++++++++++++++------ src/translator/TURTLEModelChecker.java | 38 ++++++++++++---------- 3 files changed, 47 insertions(+), 28 deletions(-) diff --git a/src/tmltranslator/touppaal/TML2UPPAAL.java b/src/tmltranslator/touppaal/TML2UPPAAL.java index eb52f61b29..bf8bd9fb00 100755 --- a/src/tmltranslator/touppaal/TML2UPPAAL.java +++ b/src/tmltranslator/touppaal/TML2UPPAAL.java @@ -120,6 +120,7 @@ public class TML2UPPAAL { } public UPPAALSpec generateUPPAAL(boolean _debug) { + TraceManager.addDev("Generating UPPAAL Specification"); tmlmodeling.removeAllRandomSequences(); debug = _debug; diff --git a/src/translator/TClassEventFinite.java b/src/translator/TClassEventFinite.java index 05022061d4..c147094970 100755 --- a/src/translator/TClassEventFinite.java +++ b/src/translator/TClassEventFinite.java @@ -172,15 +172,30 @@ public class TClassEventFinite extends TClass implements TClassEventCommon, FIFO ad.getStartState().addNext(adstop); return; } + + Param [] params_a = new Param[nbPara]; + Param [] params_b = new Param[nbPara]; - p1 = new Param("p0", Param.NAT, "0"); + /*p1 = new Param("p0", Param.NAT, "0"); p2 = new Param("p1", Param.NAT, "0"); p3 = new Param("p2", Param.NAT, "0"); + p4 = new Param("p3", Param.NAT, "0"); + p5 = new Param("p4", Param.NAT, "0"); p10 = new Param("p00", Param.NAT, "0"); p20 = new Param("p10", Param.NAT, "0"); p30 = new Param("p20", Param.NAT, "0"); - - if (nbPara > 0) { + p40 = new Param("p30", Param.NAT, "0"); + p50 = new Param("p40", Param.NAT, "0");*/ + + for(i=0; i<nbPara; i++) { + params_a[i] = new Param("pa" + i, Param.NAT, "0"); + params_b[i] = new Param("pb" + i, Param.NAT, "0"); + addParameter(params_a[i]); + addParameter(params_b[i]); + } + + + /*if (nbPara > 0) { addParameter(p1); addParameter(p10); } @@ -191,7 +206,8 @@ public class TClassEventFinite extends TClass implements TClassEventCommon, FIFO if (nbPara > 2) { addParameter(p3); addParameter(p30); - } + }*/ + nb = new Param("nb", Param.NAT, "0"); addParameter(nb); @@ -223,7 +239,7 @@ public class TClassEventFinite extends TClass implements TClassEventCommon, FIFO ad.add(adag); action = ""; for(i=0; i<nbPara; i++) { - action += "?p" + i + "0:nat"; + action += "?pb" + i + ":nat"; } action += "?index:nat"; adag.setActionValue(action); @@ -238,7 +254,7 @@ public class TClassEventFinite extends TClass implements TClassEventCommon, FIFO ad.add(adag); action = ""; for(i=0; i<nbPara; i++) { - action += "!p" + i + "0"; + action += "!pb" + i + ""; } action += "!index"; adag.setActionValue(action); @@ -304,7 +320,7 @@ public class TClassEventFinite extends TClass implements TClassEventCommon, FIFO ad.add(adag); action = ""; for(i=0; i<nbPara; i++) { - action += "?p" + i + "0:nat"; + action += "?pb" + i + ":nat"; } adag.setActionValue(action); adch3.addNext(adag); @@ -316,7 +332,7 @@ public class TClassEventFinite extends TClass implements TClassEventCommon, FIFO ad.add(adag); action = ""; for(i=0; i<nbPara; i++) { - action += "!p" + i + "0"; + action += "!pb" + i + ""; } action+="!index"; adag.setActionValue(action); @@ -344,7 +360,7 @@ public class TClassEventFinite extends TClass implements TClassEventCommon, FIFO ad.add(adag); action = ""; for(i=0; i<nbPara; i++) { - action += "?p" + i + ":nat"; + action += "?pa" + i + ":nat"; } action += "!index_r"; adag.setActionValue(action); @@ -382,7 +398,7 @@ public class TClassEventFinite extends TClass implements TClassEventCommon, FIFO ad.add(adag); action = ""; for(i=0; i<nbPara; i++) { - action += "!p" + i + ""; + action += "!pa" + i + ""; } adag.setActionValue(action); adch3.addNext(adag); diff --git a/src/translator/TURTLEModelChecker.java b/src/translator/TURTLEModelChecker.java index 562e2f0c89..f11e25eb10 100755 --- a/src/translator/TURTLEModelChecker.java +++ b/src/translator/TURTLEModelChecker.java @@ -50,6 +50,7 @@ import compiler.tmlparser.*; import java.util.*; import java.io.*; +import myutil.*; public class TURTLEModelChecker { @@ -114,7 +115,7 @@ public class TURTLEModelChecker { } public Vector syntaxAnalysisChecking() { - //System.out.println("modelChecking"); + //TraceManager.addDev("modelChecking"); Vector errors = new Vector(); warnings = new Vector(); syntaxAnalysisCheckingCD(errors, warnings); @@ -134,7 +135,7 @@ public class TURTLEModelChecker { } public void syntaxAnalysisCheckingAD(TClass t, Vector errors, Vector warnings) { - //System.out.println("Checking activity diagram of " + t.getName()); + //TraceManager.addDev("Checking activity diagram of " + t.getName()); checkRuleAD000(t, errors, warnings); checkRuleAD001(t, errors, warnings); checkRuleAD004(t, errors, warnings); @@ -323,7 +324,7 @@ public class TURTLEModelChecker { boolean b = adp.isAValidMotif(t); if (b) { for(j=0; j<adp.nbGate(); j++) { - //System.out.println("Getting gate #" + j + " of t " + t.getName()); + //TraceManager.addDev("Getting gate #" + j + " of t " + t.getName()); g = adp.getGate(j); if (tm.syncRelationWith(t, g) != null) { CheckingError error = new CheckingError(CheckingError.BEHAVIOR_ERROR, t.getName() + "/Parallel operator: " + g.getName() + ERROR_AD_007); @@ -359,7 +360,7 @@ public class TURTLEModelChecker { boolean b = adp.isAValidMotif(t); if (b) { for(j=0; j<adp.nbGate(); j++) { - //System.out.println("Getting gate #" + j + " of t " + t.getName()); + //TraceManager.addDev("Getting gate #" + j + " of t " + t.getName()); g = adp.getGate(j); if (tm.canReachSynchroOn(adp, g)) { CheckingError error = new CheckingError(CheckingError.BEHAVIOR_ERROR, t.getName() + "/Parallel operator: " + g.getName() + ERROR_AD_008); @@ -412,7 +413,7 @@ public class TURTLEModelChecker { 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); + //TraceManager.addDev("null action on gate=" + ((ADActionStateWithGate)ad1).getGate().getName() + action); } } else if (ad1 instanceof ADActionStateWithParam) { @@ -506,20 +507,20 @@ public class TURTLEModelChecker { // First parsing parser = new TMLExprParser(new StringReader(parseCmd + " " + action)); try { - //System.out.println("\nParsing :" + parseCmd + " " + action); + //TraceManager.addDev("\nParsing :" + parseCmd + " " + action); root = parser.CompilationUnit(); //root.dump("pref="); - //System.out.println("Parse ok"); + //TraceManager.addDev("Parse ok"); } catch (ParseException e) { - System.out.println("\nParsing :" + parseCmd + " " + action); - System.out.println("ParseException --------> Parse error in :" + parseCmd + " " + action); + TraceManager.addDev("\nParsing :" + parseCmd + " " + action); + TraceManager.addDev("ParseException --------> Parse error in :" + parseCmd + " " + action); CheckingError error = new CheckingError(CheckingError.BEHAVIOR_ERROR, ERROR_AD_009_0 + " in expression " + action + " of tclass " + t.getName()); error.setTClass(t); putCorrespondance(error, elt); errors.add(error); return; } catch (TokenMgrError tke) { - System.out.println("TokenMgrError --------> Parse error in :" + parseCmd + " " + action); + TraceManager.addDev("TokenMgrError --------> Parse error in :" + parseCmd + " " + action); CheckingError error = new CheckingError(CheckingError.BEHAVIOR_ERROR, ERROR_AD_009_0 + " in expression " + action + " of tclass " + t.getName()); error.setTClass(t); putCorrespondance(error, elt); @@ -550,22 +551,22 @@ public class TURTLEModelChecker { parser = new TMLExprParser(new StringReader(parseCmd + " " + modif)); try { - //System.out.println("\nParsing :" + parseCmd + " " + modif); + //TraceManager.addDev("\nParsing :" + parseCmd + " " + modif); root = parser.CompilationUnit(); //root.dump("pref="); - //System.out.println("Parse ok"); + //TraceManager.addDev("Parse ok"); } catch (ParseException e) { - System.out.println("\nParsing :" + parseCmd + " " + modif); - System.out.println("\n(Original parsing :" + parseCmd + " " + action); - System.out.println("ParseException --------> Parse error in :" + parseCmd + " " + action); + TraceManager.addDev("\nParsing :" + parseCmd + " " + modif); + TraceManager.addDev("\n(Original parsing :" + parseCmd + " " + action); + TraceManager.addDev("ParseException --------> Parse error in :" + parseCmd + " " + action); CheckingError error = new CheckingError(CheckingError.BEHAVIOR_ERROR, ERROR_AD_009_1 + " in expression " + action + " of tclass " + t.getName()); error.setTClass(t); errors.add(error); putCorrespondance(error, elt); return; } catch (TokenMgrError tke ) { - System.out.println("\nParsing :" + parseCmd + " " + modif); - System.out.println("TokenMgrError --------> Parse error in :" + parseCmd + " " + action); + TraceManager.addDev("\nParsing :" + parseCmd + " " + modif); + TraceManager.addDev("TokenMgrError --------> Parse error in :" + parseCmd + " " + action); CheckingError error = new CheckingError(CheckingError.BEHAVIOR_ERROR, ERROR_AD_009_1 + " in expression " + action + " of tclass " + t.getName()); error.setTClass(t); putCorrespondance(error, elt); @@ -578,7 +579,8 @@ public class TURTLEModelChecker { for(String s: vars) { // is that string a variable? if ((s.compareTo("true") != 0) && (s.compareTo("false") != 0) && (s.compareTo("nil") != 0)) { - System.out.println("Variable not declared: " +s); + TraceManager.addDev("\nParsing :" + parseCmd + " " + modif + " tclass" + t.getName()); + TraceManager.addDev("Variable not declared: " +s); CheckingError error = new CheckingError(CheckingError.BEHAVIOR_ERROR, s + ": " + ERROR_AD_009_2 + " in expression " + action + " of tclass " + t.getName()); error.setTClass(t); putCorrespondance(error, elt); -- GitLab