diff --git a/src/main/java/avatartranslator/tosysmlv2/Avatar2SysML.java b/src/main/java/avatartranslator/tosysmlv2/Avatar2SysML.java index 3ce7139345a630b422d19178e63e9d4e102a895c..21c61ce16348e8d11496b190aeeec3d997ea6012 100644 --- a/src/main/java/avatartranslator/tosysmlv2/Avatar2SysML.java +++ b/src/main/java/avatartranslator/tosysmlv2/Avatar2SysML.java @@ -96,7 +96,7 @@ public class Avatar2SysML { if (_type == AvatarType.UNDEFINED) dataTypes.add(_dt); else if (!(_type == AvatarType.BOOLEAN || _type == AvatarType.INTEGER)) - return; // unknown type + return; // unknown type... TO CHANGE ? ... else dataTypes.add(null); fieldNames.add(_fieldName); @@ -919,6 +919,7 @@ public class Avatar2SysML { } // computing request if (guarded) { + System.out.println("§§§§§§§§§§§§§§§§§§ " + clean_guard(((AvatarTransition)at).getOriginalGuard()) + " §§§§§§§§§§§§§§§"); sysMLrequests.append(indent + "if " + expr2SysML(clean_guard(((AvatarTransition)at).getOriginalGuard())) + " ?\n"); indent += indentStep; @@ -934,7 +935,7 @@ public class Avatar2SysML { minDelay, maxDelay, methodMap.get(((AvatarActionOnSignal)target).getSignal()), - ((AvatarActionOnSignal)target).getValues())); + ((AvatarActionOnSignal)target).getOriginalValues())); else if (requestType == 2) // Receive sysMLrequests.append(receiveRequest2SysML(transindex, minDelay, diff --git a/src/main/java/avatartranslator/tosysmlv2/Avatar2SysMLLexer.java b/src/main/java/avatartranslator/tosysmlv2/Avatar2SysMLLexer.java index 763b29cbd11e9e16abacfefa16b9725981783b3b..4f643483cc65b890682d95dc3e05425043ae8f99 100644 --- a/src/main/java/avatartranslator/tosysmlv2/Avatar2SysMLLexer.java +++ b/src/main/java/avatartranslator/tosysmlv2/Avatar2SysMLLexer.java @@ -1,4 +1,4 @@ -/* The following code was generated by JFlex 1.4.3 on 02/05/2024 11:10 */ +/* The following code was generated by JFlex 1.4.3 on 15/06/2024 17:17 */ /* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille * @@ -45,7 +45,7 @@ import java_cup.runtime.*; /** * This class is a scanner generated by * <a href="http://www.jflex.de/">JFlex</a> 1.4.3 - * on 02/05/2024 11:10 from the specification file + * on 15/06/2024 17:17 from the specification file * <tt>__Avatar2SysMLLexer__.jflex</tt> */ public class Avatar2SysMLLexer implements java_cup.runtime.Scanner { @@ -73,11 +73,11 @@ public class Avatar2SysMLLexer implements java_cup.runtime.Scanner { * Translates characters to character classes */ private static final String ZZ_CMAP_PACKED = - "\11\0\1\1\1\1\1\0\2\1\22\0\1\1\1\27\3\0\1\21"+ - "\1\22\1\0\1\33\1\34\1\17\1\15\1\35\1\16\1\0\1\20"+ - "\1\2\11\3\2\0\1\31\1\30\1\32\2\0\32\4\4\0\1\4"+ - "\1\0\1\12\2\4\1\24\1\10\1\11\5\4\1\13\1\4\1\23"+ - "\1\26\2\4\1\6\1\14\1\5\1\7\5\4\1\0\1\25\uff83\0"; + "\11\0\1\1\1\1\1\0\2\1\22\0\1\1\1\30\3\0\1\22"+ + "\1\23\1\0\1\34\1\35\1\20\1\16\1\36\1\17\1\5\1\21"+ + "\1\2\11\3\2\0\1\32\1\31\1\33\2\0\32\4\4\0\1\4"+ + "\1\0\1\13\2\4\1\25\1\11\1\12\5\4\1\14\1\4\1\24"+ + "\1\27\2\4\1\7\1\15\1\6\1\10\5\4\1\0\1\26\uff83\0"; /** * Translates characters to character classes @@ -122,12 +122,12 @@ public class Avatar2SysMLLexer implements java_cup.runtime.Scanner { private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\36\0\36\0\36\0\74\0\132\0\170\0\226"+ - "\0\264\0\36\0\36\0\36\0\36\0\36\0\322\0\360"+ - "\0\u010e\0\u012c\0\u014a\0\u0168\0\u0186\0\u01a4\0\36\0\36"+ - "\0\36\0\u01c2\0\u01e0\0\u01fe\0\36\0\u021c\0\36\0\132"+ - "\0\36\0\36\0\36\0\36\0\u023a\0\u0258\0\132\0\132"+ - "\0\132\0\u0276\0\132"; + "\0\0\0\37\0\37\0\37\0\76\0\135\0\174\0\233"+ + "\0\272\0\37\0\37\0\37\0\37\0\37\0\331\0\370"+ + "\0\u0117\0\u0136\0\u0155\0\u0174\0\u0193\0\u01b2\0\37\0\37"+ + "\0\37\0\u01d1\0\u01f0\0\u020f\0\37\0\u022e\0\37\0\135"+ + "\0\37\0\37\0\37\0\37\0\u024d\0\u026c\0\135\0\135"+ + "\0\135\0\u028b\0\135"; private static int [] zzUnpackRowMap() { int [] result = new int[43]; @@ -153,27 +153,27 @@ public class Avatar2SysMLLexer implements java_cup.runtime.Scanner { private static final int [] ZZ_TRANS = zzUnpackTrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\2\1\3\1\4\1\5\1\6\1\7\3\6\1\10"+ - "\1\11\2\6\1\12\1\13\1\14\1\15\1\16\1\17"+ - "\1\20\1\6\1\21\1\22\1\23\1\24\1\25\1\26"+ - "\1\27\1\30\1\31\40\0\2\5\34\0\13\6\6\0"+ - "\2\6\1\0\1\6\11\0\4\6\1\32\6\6\6\0"+ - "\2\6\1\0\1\6\11\0\10\6\1\33\2\6\6\0"+ - "\2\6\1\0\1\6\11\0\13\6\6\0\1\34\1\6"+ - "\1\0\1\6\31\0\1\35\15\0\13\6\6\0\2\6"+ - "\1\0\1\36\34\0\1\37\12\0\4\6\1\40\6\6"+ - "\6\0\2\6\1\0\1\6\37\0\1\41\35\0\1\42"+ - "\35\0\1\43\35\0\1\44\7\0\5\6\1\45\5\6"+ - "\6\0\2\6\1\0\1\6\11\0\11\6\1\46\1\6"+ - "\6\0\2\6\1\0\1\6\11\0\13\6\6\0\1\6"+ - "\1\47\1\0\1\6\11\0\3\6\1\50\7\6\6\0"+ - "\2\6\1\0\1\6\11\0\6\6\1\51\4\6\6\0"+ - "\2\6\1\0\1\6\11\0\12\6\1\52\6\0\2\6"+ - "\1\0\1\6\11\0\6\6\1\53\4\6\6\0\2\6"+ - "\1\0\1\6\7\0"; + "\1\2\1\3\1\4\1\5\1\6\1\2\1\7\3\6"+ + "\1\10\1\11\2\6\1\12\1\13\1\14\1\15\1\16"+ + "\1\17\1\20\1\6\1\21\1\22\1\23\1\24\1\25"+ + "\1\26\1\27\1\30\1\31\41\0\2\5\35\0\14\6"+ + "\6\0\2\6\1\0\1\6\11\0\5\6\1\32\6\6"+ + "\6\0\2\6\1\0\1\6\11\0\11\6\1\33\2\6"+ + "\6\0\2\6\1\0\1\6\11\0\14\6\6\0\1\34"+ + "\1\6\1\0\1\6\32\0\1\35\15\0\14\6\6\0"+ + "\2\6\1\0\1\36\35\0\1\37\12\0\5\6\1\40"+ + "\6\6\6\0\2\6\1\0\1\6\40\0\1\41\36\0"+ + "\1\42\36\0\1\43\36\0\1\44\7\0\6\6\1\45"+ + "\5\6\6\0\2\6\1\0\1\6\11\0\12\6\1\46"+ + "\1\6\6\0\2\6\1\0\1\6\11\0\14\6\6\0"+ + "\1\6\1\47\1\0\1\6\11\0\4\6\1\50\7\6"+ + "\6\0\2\6\1\0\1\6\11\0\7\6\1\51\4\6"+ + "\6\0\2\6\1\0\1\6\11\0\13\6\1\52\6\0"+ + "\2\6\1\0\1\6\11\0\7\6\1\53\4\6\6\0"+ + "\2\6\1\0\1\6\7\0"; private static int [] zzUnpackTrans() { - int [] result = new int[660]; + int [] result = new int[682]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java index 3918521b6ca6c24faa9f4b05086d3a9dc01f83a8..5e17ea1b28b5e44d52e33e3f8bf22ad6eca7f4be 100644 --- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java +++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java @@ -94,6 +94,19 @@ public class AvatarFromSysML { buildDataTypes(); buildBlocks(); buildRelations(); + for(AvatarFromSysMLError e : errors) + System.out.println(e.toString()); +/* for (AvatarBlock blk : avSpec.getListOfBlocks()) { + for (AvatarStateMachineElement asme : blk.getStateMachine().getListOfElements()) { + if (asme.getNexts().size() == 1 && + asme instanceof AvatarTransition && + asme.getNexts().get(0) instanceof AvatarRandom) + System.out.println("%%%%%%%%%%%% " + + ((AvatarTransition)asme).getDelayDistributionLaw() + " : " + + ((AvatarTransition)asme).getDelayExtra1() + " , " + + ((AvatarTransition)asme).getDelayExtra2() + "%%%%%%%%%%%%%"); + } + } */ System.out.println("$$$$$$$$$$ DONE $$$$$$$$$$$$"); return avSpec; } @@ -433,6 +446,7 @@ public class AvatarFromSysML { minDelay, maxDelay); setDistributionLaw(theTransition, transition.getDelayDistributionLaw(),transition.getDelayExtra(), transition); + theTransition.setProbability(transition.getProbability()); // add actions List<StxAction> actions = transition.getActions(); // should exist only in some cases... int asize = actions.size(); diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLLexer.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLLexer.java index f4ac47674e2d6b37b971da119a158bf6769d93ad..076c6044f4161e670a2f43613f28195d61e748c1 100644 --- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLLexer.java +++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLLexer.java @@ -1,4 +1,4 @@ -/* The following code was generated by JFlex 1.4.3 on 12/06/2024 17:20 */ +/* The following code was generated by JFlex 1.4.3 on 14/06/2024 12:54 */ package avatartranslator.tosysmlv2; import java_cup.runtime.*; @@ -9,7 +9,7 @@ import avatartranslator.tosysmlv2.AvatarFromSysMLSyntax.*; /** * This class is a scanner generated by * <a href="http://www.jflex.de/">JFlex</a> 1.4.3 - * on 12/06/2024 17:20 from the specification file + * on 14/06/2024 12:54 from the specification file * <tt>__AvatarFromSysMLLexer__.jflex</tt> */ public class AvatarFromSysMLLexer implements java_cup.runtime.Scanner { diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java index 8d5cfda62f457946eba4f2ac338d80f0ef934f99..c0ccfd5cdde9a75f8617cfb310f2e6440519a2a1 100644 --- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java +++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java @@ -2495,7 +2495,7 @@ class CUP$AvatarFromSysMLParser$actions { getInMessage(m.getAvatarName()); getOutMessage(id.getAvatarName(), (StxInMessage)theStructure); - if (! theStructure.declare() ) { + if (! theOutMessage.declare() ) { addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Out-message profile " + id.getAvatarName() + " is already declared", theStructure.getLeft()) ); } else diff --git a/src/main/java/avatartranslator/tosysmlv2/javacup/Avatar2SysMLLexer.jflex b/src/main/java/avatartranslator/tosysmlv2/javacup/Avatar2SysMLLexer.jflex index 8de20ce3cc50a6c6d41329ac87cb1eab33afc3db..abcd0e05b258194575fae630ae14d81f1c88bde0 100644 --- a/src/main/java/avatartranslator/tosysmlv2/javacup/Avatar2SysMLLexer.jflex +++ b/src/main/java/avatartranslator/tosysmlv2/javacup/Avatar2SysMLLexer.jflex @@ -55,7 +55,7 @@ import java_cup.runtime.*; Space = [\ \n\r\t\f] Natural = 0 | [1-9][0-9]* -Identifier = [a-zA-Z_][a-zA-Z0-9_]* +Identifier = [a-zA-Z_][a-zA-Z0-9_\.]* %% diff --git a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup index cb28b4ec71c658cfe898ffc70d92d239933f2885..1dceeec59c46ffcdbc45c7bb5306677c7054382e 100644 --- a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup +++ b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup @@ -661,7 +661,7 @@ outMessageDeclBegin ::= PART:p DEF IDENT:id specializes OUTMESSAGE_T COMMA IDENT:m {: getInMessage(m.getAvatarName()); getOutMessage(id.getAvatarName(), (StxInMessage)theStructure); - if (! theStructure.declare() ) { + if (! theOutMessage.declare() ) { addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Out-message profile " + id.getAvatarName() + " is already declared", theStructure.getLeft()) ); } else diff --git a/src/main/java/ui/AvatarDesignPanelTranslator.java b/src/main/java/ui/AvatarDesignPanelTranslator.java index 6edfce0bc60acb3975b4b97143ae5e9c76b80d20..32e11dbcd4102ce4ba93b44c4181997017212956 100644 --- a/src/main/java/ui/AvatarDesignPanelTranslator.java +++ b/src/main/java/ui/AvatarDesignPanelTranslator.java @@ -1110,6 +1110,8 @@ public class AvatarDesignPanelTranslator { AvatarAttribute aa = new AvatarAttribute(ta.getName(), ty, null, type); if (ty == AvatarType.UNDEFINED && ta.getTypeOther() != null) adt.addAttribute(aa,ta.getTypeOther().trim()); + else + adt.addAttribute(aa,null); } _as.addDataType(adt); }