From 160aa42b133c412e8201aedabfa5d417301c4128 Mon Sep 17 00:00:00 2001 From: Sophie Coudert <sophie.coudert@telecom-paris.fr> Date: Wed, 12 Jun 2024 17:28:31 +0200 Subject: [PATCH] save --- .../java/avatartranslator/AvatarSpecification.java | 6 +++--- .../avatartranslator/tosysmlv2/AvatarFromSysML.java | 2 ++ .../tosysmlv2/AvatarFromSysMLLexer.java | 4 ++-- .../tosysmlv2/AvatarFromSysMLParser.java | 12 ++++++++++++ .../tosysmlv2/javacup/AvatarFromSysML.jcup | 10 ++++++++-- src/main/java/cli/Action.java | 1 - 6 files changed, 27 insertions(+), 8 deletions(-) diff --git a/src/main/java/avatartranslator/AvatarSpecification.java b/src/main/java/avatartranslator/AvatarSpecification.java index d073de496a..6937054749 100644 --- a/src/main/java/avatartranslator/AvatarSpecification.java +++ b/src/main/java/avatartranslator/AvatarSpecification.java @@ -37,7 +37,7 @@ */ package avatartranslator; - +import avatartranslator.tosysmlv2.*; import avatartranslator.intboolsolver.AvatarIBSolver; import myutil.Conversion; import myutil.NameChecker; @@ -1746,8 +1746,8 @@ public class AvatarSpecification extends AvatarElement implements IBSParamSpec { // SysML V2 public static AvatarSpecification makeFromSysMLV2(String pathToFile) { - AvatarSpecification as = new AvatarSpecification(pathToFile, null); - return as; + AvatarFromSysML builder = new AvatarFromSysML(); + return builder.sysMLtoSpec(pathToFile); } public List<String> getExtraTypes() { diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java index 0026b42853..19181dee2e 100644 --- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java +++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java @@ -71,6 +71,7 @@ public class AvatarFromSysML { out.println(_err.toString()); } public AvatarSpecification sysMLtoSpec(String _fileName) { + System.out.println("$$$$$$$$$$ BEGINNING $$$$$$$$$$$$"); AvatarFromSysMLParser parser; try { parser = new AvatarFromSysMLParser(new AvatarFromSysMLLexer(new FileReader(_fileName)), @@ -93,6 +94,7 @@ public class AvatarFromSysML { buildDataTypes(); buildBlocks(); buildRelations(); + System.out.println("$$$$$$$$$$ DONE $$$$$$$$$$$$"); return avSpec; } diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLLexer.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLLexer.java index e3e5c9fcec..f4ac47674e 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 15:10 */ +/* The following code was generated by JFlex 1.4.3 on 12/06/2024 17:20 */ 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 15:10 from the specification file + * on 12/06/2024 17:20 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 09f76a6c19..8d5cfda62f 100644 --- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java +++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java @@ -5069,12 +5069,18 @@ class CUP$AvatarFromSysMLParser$actions { case 244: // transitionBegin ::= TRANSITION COLON AVTRANSITION_T FIRST IDENT { Object RESULT =null; + Location txleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; + Location txright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xright; + Object t = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4).<Object>value(); Location stxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; Location stxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Ident st = CUP$AvatarFromSysMLParser$stack.peek().<Ident>value(); getState(st.getAvatarName()); getTransition(0); + if (!theTransition.declare()) + addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, txleft, + "transition with same index has already been declared", null)); clearTransitionLbls(); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("transitionBegin",129, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -5085,6 +5091,9 @@ class CUP$AvatarFromSysMLParser$actions { case 245: // transitionBegin ::= TRANSITION COLON AVTRANSITION_T FIRST IDENT IF INDEX_F EQ INT { Object RESULT =null; + Location txleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-8)).xleft; + Location txright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-8)).xright; + Object t = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-8).<Object>value(); Location stxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; Location stxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xright; Ident st = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4).<Ident>value(); @@ -5094,6 +5103,9 @@ class CUP$AvatarFromSysMLParser$actions { getState(st.getAvatarName()); getTransition(i-1); + if (!theTransition.declare()) + addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, txleft, + "transition with same index has already been declared", null)); clearTransitionLbls(); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("transitionBegin",129, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-8), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); diff --git a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup index 21066b07e2..cb28b4ec71 100644 --- a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup +++ b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup @@ -1533,14 +1533,20 @@ transition ::= :} ; transitionBegin ::= - TRANSITION COLON AVTRANSITION_T FIRST IDENT:st {: + TRANSITION:t COLON AVTRANSITION_T FIRST IDENT:st {: getState(st.getAvatarName()); getTransition(0); + if (!theTransition.declare()) + addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, txleft, + "transition with same index has already been declared", null)); clearTransitionLbls(); :} - | TRANSITION COLON AVTRANSITION_T FIRST IDENT:st IF INDEX_F EQ INT:i {: + | TRANSITION:t COLON AVTRANSITION_T FIRST IDENT:st IF INDEX_F EQ INT:i {: getState(st.getAvatarName()); getTransition(i-1); + if (!theTransition.declare()) + addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, txleft, + "transition with same index has already been declared", null)); clearTransitionLbls(); :} ; diff --git a/src/main/java/cli/Action.java b/src/main/java/cli/Action.java index 3ede8b7940..ce6fe5304b 100644 --- a/src/main/java/cli/Action.java +++ b/src/main/java/cli/Action.java @@ -2358,7 +2358,6 @@ public class Action extends Command implements ProVerifOutputListener { } as = AvatarSpecification.makeFromSysMLV2(commands[0]); - if (interpreter.mgui != null) { interpreter.mgui.gtm.setAvatarSpecification(as); } -- GitLab