Skip to content
Snippets Groups Projects
Commit bd7a4a6c authored by Ludovic Apvrille's avatar Ludovic Apvrille
Browse files

Resolving bug on no next operator

parent 5ecb8314
No related branches found
No related tags found
No related merge requests found
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 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 \ No newline at end of file
...@@ -66,6 +66,7 @@ public class TMLSyntaxChecking { ...@@ -66,6 +66,7 @@ public class TMLSyntaxChecking {
private final String UNDECLARED_VARIABLE = "unknown variable"; private final String UNDECLARED_VARIABLE = "unknown variable";
private final String SYNTAX_ERROR_VARIABLE_EXPECTED = "syntax error (variable expected)"; private final String SYNTAX_ERROR_VARIABLE_EXPECTED = "syntax error (variable expected)";
private final String TIME_UNIT_ERROR = "unknown time unit"; private final String TIME_UNIT_ERROR = "unknown time unit";
private final String NO_NEXT_OPERATOR_ERROR = "No next operator";
private ArrayList<TMLError> errors; private ArrayList<TMLError> errors;
...@@ -93,6 +94,8 @@ public class TMLSyntaxChecking { ...@@ -93,6 +94,8 @@ public class TMLSyntaxChecking {
checkReadAndWriteInChannelsEventsAndRequests(); checkReadAndWriteInChannelsEventsAndRequests();
checkActionSyntax(); checkActionSyntax();
checkNextActions();
} }
public int hasErrors() { public int hasErrors() {
...@@ -125,6 +128,22 @@ public class TMLSyntaxChecking { ...@@ -125,6 +128,22 @@ public class TMLSyntaxChecking {
errors.add(error); 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() { public void checkReadAndWriteInChannelsEventsAndRequests() {
TMLChannel ch; TMLChannel ch;
TMLEvent evt; TMLEvent evt;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment