diff --git a/executablecode/Makefile.src b/executablecode/Makefile.src index cdf12b5430fd358660700a63ec442af0a3a9b1d8..9c894c91e5fd407eaf8175a33627a70a90f0a7b5 100755 --- a/executablecode/Makefile.src +++ b/executablecode/Makefile.src @@ -1 +1 @@ -SRCS = generated_src/main.c generated_src/TestBench.c generated_src/EmergencySimulator.c generated_src/CarPositionSimulator.c generated_src/GPSSensor.c generated_src/RadarSensor.c generated_src/SpeedSensor.c generated_src/Communication.c generated_src/CorrectnessChecking.c generated_src/NeighbourhoodTableManagement.c generated_src/DSRSC_Management.c generated_src/PTC.c generated_src/DrivingPowerReductionStrategy.c generated_src/BCU.c generated_src/BrakeManagement.c generated_src/DangerAvoidanceStrategy.c generated_src/CSCU.c generated_src/VehiculeDynamicsManagement.c generated_src/PlausibilityCheck.c generated_src/ObjectListManagement.c \ No newline at end of file +SRCS = generated_src/main.c generated_src/ObserverProp1.c generated_src/RemotelyControlledMicrowave.c generated_src/MicroWaveOven.c generated_src/Bell.c generated_src/ControlPanel.c generated_src/Controller.c generated_src/Magnetron.c generated_src/Door.c \ No newline at end of file diff --git a/src/tmltranslator/TMLSyntaxChecking.java b/src/tmltranslator/TMLSyntaxChecking.java index 8c984c437c716f20d8cb9040f21c2b7a994a2fb0..6a77696baac5c8c9651bb1d6527f2f720fbca543 100755 --- a/src/tmltranslator/TMLSyntaxChecking.java +++ b/src/tmltranslator/TMLSyntaxChecking.java @@ -66,6 +66,7 @@ public class TMLSyntaxChecking { private final String UNDECLARED_VARIABLE = "unknown variable"; private final String SYNTAX_ERROR_VARIABLE_EXPECTED = "syntax error (variable expected)"; private final String TIME_UNIT_ERROR = "unknown time unit"; + private final String NO_NEXT_OPERATOR_ERROR = "No next operator"; private ArrayList<TMLError> errors; @@ -93,6 +94,8 @@ public class TMLSyntaxChecking { checkReadAndWriteInChannelsEventsAndRequests(); checkActionSyntax(); + + checkNextActions(); } public int hasErrors() { @@ -125,6 +128,22 @@ public class TMLSyntaxChecking { errors.add(error); } + + public void checkNextActions() { + for(TMLTask t: tmlm.getTasks()) { + TMLActivity tactivity = t.getActivityDiagram(); + int n = tactivity.nElements(); + for(int i=0; i<n; i++) { + TMLActivityElement elt = tactivity.get(i); + if (!(elt instanceof TMLStopState)) { + if(elt.getNbNext() == 0) { + addError(t, elt, elt.getName() + ": " + NO_NEXT_OPERATOR_ERROR, TMLError.ERROR_BEHAVIOR); + } + } + } + } + } + public void checkReadAndWriteInChannelsEventsAndRequests() { TMLChannel ch; TMLEvent evt;