diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java index 52a7bcb57dc35e27af46850abad9a35fbab5b7c1..37e98413db4627c41860fc5860ed0a59a272567a 100644 --- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java +++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java @@ -118,27 +118,27 @@ public class AvatarFromSysML { * If errors are found, they are printed using TraceManager.addDev before returning */ public AvatarSpecification sysMLtoSpec(String _fileName) { - + errors = new ArrayList<AvatarFromSysMLError>(); // Initialize parser AvatarFromSysMLParser parser; try { parser = new AvatarFromSysMLParser(new AvatarFromSysMLLexer(new FileReader(_fileName)), new ComplexSymbolFactory()); } catch (java.lang.Exception e) { - e.printStackTrace(out); + //e.printStackTrace(out); + String errorMsg = "cannot initialize parser from file " + _fileName; + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, errorMsg)); + TraceManager.addDev(errorMsg); return new AvatarSpecification("DummySpec", null); } // Run parser and get parser errors TraceManager.addDev("Parsing Model"); - try { stxSpec = parser.parseModel(); } - catch (java.lang.Exception e) { - e.printStackTrace(out); - return new AvatarSpecification("DummySpec", null); - } + stxSpec = parser.parseModel(); if (stxSpec == null) { for(AvatarFromSysMLError e : parser.getErrors()) TraceManager.addDev(e.toString()); + errors = parser.getErrors(); return new AvatarSpecification("DummySpec", null); } errors = stxSpec.getErrors(); @@ -159,14 +159,19 @@ public class AvatarFromSysML { } catch (Exception ex) { for(AvatarFromSysMLError e : errors) - TraceManager.addDev(e.toString()); + TraceManager.addDev(e.toString()); + TraceManager.addDev("Building failed with exception " + ex.toString()); return new AvatarSpecification("DummySpec", null); } // TODO: move error handling - for(AvatarFromSysMLError e : errors) + boolean hasError = false; + for(AvatarFromSysMLError e : errors){ + if (e.getLevel() > AvatarFromSysMLError.WARNING) + hasError = true; TraceManager.addDev(e.toString()); - - return avSpec; + } + if (hasError) return new AvatarSpecification("DummySpec", null); + else return avSpec; } /** initialize a state entry in the map that associates outgoing transitions to state-machine elements */ @@ -262,7 +267,7 @@ public class AvatarFromSysML { break; case AvatarFromSysMLSyntax.STXPRESENDSTATE : case AvatarFromSysMLSyntax.STXPRERECEIVESTATE : - addError(new AvatarFromSysMLError(AvatarFromSysMLError.BUGERROR, null, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.BUG, null, "adding precom state (AvatarFromSysML.getState)", null)); break; case AvatarFromSysMLSyntax.STXSETTIMERSTATE : @@ -340,7 +345,7 @@ public class AvatarFromSysML { public void accept(AvatarAttribute aa, String dt) { AvatarDataType adt = dataTypeMap.get(dt); // find the associated datatype if (adt == null) { - errors.add(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, "datatype " + dt + " in datatype field " + + errors.add(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, "datatype " + dt + " in datatype field " + aa.getName() + " is undefined")); aa.setType(AvatarType.INTEGER); // should not be used... } @@ -369,7 +374,7 @@ public class AvatarFromSysML { List<String> err = new ArrayList<String>(); primitiveFieldsMap = AvatarDataTypePrimitiveFields.buildMap(dtList, err); - for(String e : err) errors.add(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR,e)); + for(String e : err) errors.add(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR,e)); } @@ -386,7 +391,7 @@ public class AvatarFromSysML { public BuildBlock(){} public void accept(String n, StxBlock blk) { if (!blk.isDeclared()) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, "block " + blk.getName() +" has been used but has not been declared")); return; } @@ -479,7 +484,7 @@ public class AvatarFromSysML { ax.setInitialValue(initVal); } else - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, a.getLeft(), "datatype for constants is not supported", null)); } @@ -523,7 +528,7 @@ public class AvatarFromSysML { // find datatype AvatarDataType adt = avSpec.getDataTypeByName(returnType); if (adt == null) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, sm.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, sm.getLeft(), "unknown type for method return parameter", null)); AvatarAttribute ret = new AvatarAttribute("return__", AvatarType.UNDEFINED, theBlock, null); // set datatype @@ -546,26 +551,26 @@ public class AvatarFromSysML { StxSignal ss = blk.getSignal(i); AvatarSignal as = getSignal(ss); // create signal if (!ss.isDeclared()) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, ss.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, ss.getLeft(), "signal " + theBlock.getName() + "." + ss.getName() + " has not been declared")); continue; } theBlock.addSignal(as); // add signal StxChannel ch = ss.getChannel(); if (ch == null) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, ss.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, ss.getLeft(), "channel of signal " + ss.getName() + " has not been set")); continue; } if (!ch.isDeclared()) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, ss.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, ss.getLeft(), "channel of signal " + theBlock.getName() + "." + ss.getName() + " has not been declared")); continue; } if (ss.isInput()) { StxInMessage im = ss.getChannel().getInProfile(); // profile is channel's in profile if (im == null) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, ss.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, ss.getLeft(), "input profile of signal " + ss.getName() + " has not been set")); continue; } @@ -574,7 +579,7 @@ public class AvatarFromSysML { else { StxOutMessage om = ss.getChannel().getOutProfile(); // profile is channel's out profile if (om == null) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, ss.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, ss.getLeft(), "output profile of signal " + ss.getName() + " has not been set")); continue; } @@ -618,7 +623,7 @@ public class AvatarFromSysML { byte stateType = states[i].getType(); boolean undeclaredState = false; if (! states[i].isDeclared()) { // in this case, stateType may be null - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, "state " + theBlock.getName() + "." + states[i].getName() + " is used but not declared")); stateType = AvatarFromSysMLSyntax.STXSTANDARDSTATE; undeclaredState = true; @@ -649,7 +654,7 @@ public class AvatarFromSysML { startStateLocation = states[i].getLeft(); asm.setStartState(startState); } else { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, states[i].getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, states[i].getLeft(), "several start-states declared, only one is kept", startStateLocation)); continue; } @@ -665,7 +670,7 @@ public class AvatarFromSysML { int tsize = transitions.size(); if (tsize > 1 && stateType != AvatarFromSysMLSyntax.STXSTANDARDSTATE) { // Avatar well-formedness constraint broken tsize = 1; // recover to continue - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, states[i].getTransitions().get(1).getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, states[i].getTransitions().get(1).getLeft(), "state " + states[i].getName() + " only accept one single outgoing transition", states[i].getTransitions().get(1).getRleft())); } @@ -676,18 +681,18 @@ public class AvatarFromSysML { // skip some transition that have not been fully defined during parsing if (transition == null) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, states[i].getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, states[i].getLeft(), "something is wrong in state " + states[i].getName() + " : null transition found")); continue; } if (! transition.isDeclared()) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, transition.getRleft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getRleft(), "transition request in state " + states[i].getName() + " of block " + theBlock.getName() + " has no associated declaration" )); continue; } if (! transition.isRequested()) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, transition.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getLeft(), "transition has no request in state " + states[i].getName())); continue; } @@ -769,7 +774,7 @@ public class AvatarFromSysML { // Also checks compatibility constraints between transition and target types. if (transition.getTarget() == null) { // unrecoverable, transition skiped - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, transition.getRleft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getRleft(), "something is wrong in transition : no target defined", transition.getLeft())); continue; } @@ -782,7 +787,7 @@ public class AvatarFromSysML { if (transition.getTarget().getTransitions().size() == 0 || transition.getTarget().getTransition(0) == null) { // target has no outgoing transition, unrecoverable - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, transition.getTarget().getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getTarget().getLeft(), "something is wrong in precommunication state " + transition.getTarget().getName() + " : no outgoing transition")); continue; @@ -801,7 +806,7 @@ public class AvatarFromSysML { transition.getType() == AvatarFromSysMLSyntax.STXSETTIMERTRANSITION ) || ( transition.getTarget().getType() == AvatarFromSysMLSyntax.STXRESETTIMERSTATE && transition.getType() == AvatarFromSysMLSyntax.STXRESETTIMERTRANSITION ) )) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, transition.getTarget().getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getTarget().getLeft(), "outgoing transitions from pre-send state must be sending transitions leading to some sending state " + "(send/set timer /reset timer)", transition.getLeft())); continue; @@ -811,7 +816,7 @@ public class AvatarFromSysML { transition.getType() == AvatarFromSysMLSyntax.STXRECEIVETRANSITION ) || ( transition.getTarget().getType() == AvatarFromSysMLSyntax.STXEXPIRETIMERSTATE && transition.getType() == AvatarFromSysMLSyntax.STXEXPIRETIMERTRANSITION ) )) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, transition.getTarget().getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getTarget().getLeft(), "outgoing transitions from pre-reveive state must be sending transitions leading to some " + "receivinging state (receive/expire timer)", transition.getLeft())); continue; @@ -827,7 +832,7 @@ public class AvatarFromSysML { if (transition.getTarget().getType() == AvatarFromSysMLSyntax.STXSTOPSTATE) { // special case: a different Avatar stopstate target for each transition to the unique syntactic stopstate if (transition.getTarget().getTransitions().size() != 0) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, transition.getTarget().getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, transition.getTarget().getLeft(), "stopstate should not have outgoing transitions")); } tgtState = new AvatarStopState("StopState", null, theBlock); // create the stopstate @@ -847,18 +852,18 @@ public class AvatarFromSysML { // some unrecovered errors (transition skiped) if (transition.getSignal() == null) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, transition.getRleft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getRleft(), "sending transition should have an associated signal", transition.getLeft())); continue; } state.setSignal( getSignal(transition.getSignal())); if (state.getSignal().isIn()) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, transition.getRleft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getRleft(), "signal of sending transition must be an output signal", transition.getSignal().getLeft())); continue; } if (! transition.getSignal().isDeclared()) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, transition.getRleft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getRleft(), "transition uses a signal " + transition.getSignal().getName() + " that has not been declared")); continue; } @@ -875,7 +880,7 @@ public class AvatarFromSysML { // extends parameter if datatpe: "x__field1, ..., x__fieldN" (if well typed) String extendedPath = extendPath(p.toString().replaceAll("\\.", "__"), blk); if (extendedPath == null) { // parameter cannot be typed - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, p.getLeft(), "attribute \"" + + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, p.getLeft(), "attribute \"" + p.toString() + "\" cannot be typed")); // recover w.r.t. expected type to continue, while providing information AvatarDataType adt = state.getSignal().getListOfOriginalAttributes().get(u).getDataType(); @@ -906,7 +911,7 @@ public class AvatarFromSysML { } } else { // unrecovered error, skip transition - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, transition.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getLeft(), "sending transition should lead to a send state", transition.getRleft())); continue; } @@ -919,24 +924,24 @@ public class AvatarFromSysML { // some unrecovered errors (transition skiped) if (transition.getSignal() == null) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, transition.getRleft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getRleft(), "receiving transition should have an associated signal", transition.getLeft())); continue; } state.setSignal(getSignal(transition.getSignal())); if (! transition.getSignal().isDeclared()) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, transition.getRleft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getRleft(), "transition uses a signal " + transition.getSignal().getName() + " that has not been declared")); continue; } if (state.getSignal().isOut()) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, transition.getRleft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getRleft(), "signal of receiving transition must be an input signal", transition.getSignal().getLeft())); continue; } if (transition.getSignal().getChannel() == null) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, transition.getRleft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getRleft(), "signal of receiving transition doesn't have an associated channel", transition.getSignal().getLeft())); continue; } @@ -955,14 +960,14 @@ public class AvatarFromSysML { String value; // to receive name of attribute (field) to assign with parameter if (aa == null) { // parameter has not been correctly defined while parsing - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, transition.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getLeft(), "parameter " + k + " of signal " + state.getSignal().getName() + " is not well defined")); value = ""; // default, because no way to identify target variable } else { // parameter well defined value = receivePayload.get(aa.getName()); if (value == null) { // target variable undefined - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, transition.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getLeft(), "receiving transition has a missing field")); value = ""; } @@ -975,7 +980,7 @@ public class AvatarFromSysML { // extend value w.r.t its datatype if relevant String extendedPath = extendPath(value.replaceAll("\\.", "__"), blk); if (extendedPath == null) { // value cannot be typed - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, transition.getLeft(), "attribute \"" + + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getLeft(), "attribute \"" + value + "\" cannot be typed")); // recover w.r.t expected type to continue while providing info AvatarDataType adt = profile.get(k).getDataType(); @@ -996,7 +1001,7 @@ public class AvatarFromSysML { } } else { // unrecoved error, skip transition - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, transition.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getLeft(), "receiving transition should lead to a receive state", transition.getRleft())); continue; } @@ -1009,14 +1014,14 @@ public class AvatarFromSysML { // some unrecovered errors (transition skipped) if (transition.getTimer() == null) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, transition.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getLeft(), "set-timer transition has no associated timer", transition.getRleft())); continue; } state.setTimer(getTimerByName(transition.getTimer(), theBlock)); if (transition.getSendPayload() == null || transition.getSendPayload().size() != 1 || !(transition.getSendPayload().get(0) instanceof StxExpr)) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, transition.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getLeft(), "payload of set-timer transition is not well formed", transition.getRleft())); continue; } @@ -1026,7 +1031,7 @@ public class AvatarFromSysML { state.setTimerOriginalValue(((StxExpr)transition.getSendPayload().get(0)).toString()); } else { // unrecoved error, skip transition - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, transition.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getLeft(), "set-timer transition should lead to a set-timer state", transition.getRleft())); continue; } @@ -1039,7 +1044,7 @@ public class AvatarFromSysML { // an unrecovered error (transition skipped) if (transition.getTimer() == null) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, transition.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getLeft(), "reset-timer transition has no associated timer", transition.getRleft())); continue; } @@ -1048,7 +1053,7 @@ public class AvatarFromSysML { state.setTimer(getTimerByName(transition.getTimer(), theBlock)); } else { // unrecoved error, skip transition - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, transition.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getLeft(), "reset-timer transition should lead to a reset-timer state", transition.getRleft())); continue; } @@ -1060,7 +1065,7 @@ public class AvatarFromSysML { // an unrecovered error (transition skipped) if (transition.getTimer() == null) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, transition.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getLeft(), "expire-timer transition has no associated timer", transition.getRleft())); continue; } @@ -1069,7 +1074,7 @@ public class AvatarFromSysML { state.setTimer(getTimerByName(transition.getTimer(), theBlock)); } else { // unrecoved error, skip transition - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, transition.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getLeft(), "expire-timer transition should lead to a expire-timer state", transition.getRleft())); continue; } @@ -1081,7 +1086,7 @@ public class AvatarFromSysML { tgtType == AvatarFromSysMLSyntax.STXRANDOMSTATE || tgtType == AvatarFromSysMLSyntax.STXCOUNTSTATE || tgtType == AvatarFromSysMLSyntax.STXSTARTSTATE) ) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, transition.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, transition.getLeft(), "transition type is not consistant with the type of its target state", transition.getTarget().getLeft())); continue; } @@ -1107,14 +1112,14 @@ public class AvatarFromSysML { public void accept(AvatarStateMachineElement e, StateTransitions st) { int s = st.getTransitions().size(); if (s == 0 && ! (e instanceof AvatarStartState)) { // unreachable state that may be not well defined => to remove - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, "state " + e.getName() + + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, "state " + e.getName() + " of block " + st.getBlock().getName() + " is unreachable --> removed")); st.getBlock().getStateMachine().removeElement(e); for(AvatarStateMachineElement x : e.getNexts()) st.getBlock().getStateMachine().removeElement(x); } if (s > 0 && (e instanceof AvatarStartState)) { // start state has input edges => redirected to error stopstate - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, "start state in bloc " + + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, "start state in bloc " + st.getBlock().getName() + " has some input transition")); for(int i = 0; i < s; i++) { st.getTransitions().get(i).getNexts().clear(); @@ -1124,7 +1129,7 @@ public class AvatarFromSysML { } } if (s > 1 && !(e instanceof AvatarStartState || e instanceof AvatarStateElement)) { // too much input edges => redirected to error stopstate - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, "state " + e.getName() + " in bloc " + + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, "state " + e.getName() + " in bloc " + st.getBlock().getName() + " has more than one incomming transition")); for(int i = 1; i < s; i++) { @@ -1164,7 +1169,7 @@ public class AvatarFromSysML { } } if (law == -1) { // not found - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, _st.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, _st.getLeft(), "transition with unknown transition law : " + distributionLaw + " (set to uniform)")); law = DELAY_UNIFORM_LAW; } @@ -1181,7 +1186,7 @@ public class AvatarFromSysML { tmpString = extra1; extra1 = delayExtra.get(extra1); // try to get value of first parameter through its name if (extra1 == null) { // not found - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, _st.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, _st.getLeft(), "transition law : " + distributionLaw + " requires a " + tmpString + " parameter")); max--; } @@ -1189,14 +1194,14 @@ public class AvatarFromSysML { tmpString = extra2; extra2 = delayExtra.get(extra2); // try to get value of second parameter through its name if (extra2 == null) { // not found - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, _st.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, _st.getLeft(), "transition law : " + distributionLaw + " requires a " + tmpString + " parameter")); max--; } } } if (delayExtra != null && delayExtra.size() > max) { // there is some unexpected parameter value - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, _st.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, _st.getLeft(), "transition law : " + distributionLaw + " has irrelevant parameters")); } @@ -1232,7 +1237,7 @@ public class AvatarFromSysML { } else { // the field is datatype-typed AvatarDataType adt = avSpec.getDataTypeByName(type); if (adt == null) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, ss.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, ss.getLeft(), "message profile uses undefined datatype " + type)); } // add the original version of the field to am @@ -1387,19 +1392,19 @@ public class AvatarFromSysML { } public void accept(String n, StxRelation r) { if (!r.isDeclared()) { // declaration part is missing in source - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, "relation " + r.getName() +" has been used but has not been declared")); // try to recover int size = r.getSize(); if (size == 0) { // empty relation is droped - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, r.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, r.getLeft(), "relation is empty")); return; } else { // channels found, try to recover blocks from them int i = 0; while (i < size && (r.getChannel(i).getBlockA() == null || r.getChannel(i).getBlockB() == null)) i++; if (i == size) { // cannot find a channel with two clearly named blocks, drop relation - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, "cannot determine blocs of relation " + r.getName())); return; } @@ -1407,7 +1412,7 @@ public class AvatarFromSysML { r.setBlock1(stxSpec.getBlockMap().get(r.getChannel(i).getBlockA())); r.setBlock2(stxSpec.getBlockMap().get(r.getChannel(i).getBlockB())); if (r.getBlock1() == null || r.getBlock2() == null) { // AvatarBlock structures not found, drop relation - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, "cannot determine blocs of relation " + r.getName())); return; } @@ -1433,14 +1438,14 @@ public class AvatarFromSysML { // add channels to the relation int size = r.getSize(); if (size == 0) { // empty relation, kept because coherent although useless - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, r.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, r.getLeft(), "relation " + r.getName() + " is empty")); } for (int i = 0; i < size; i++) { // iterate on channels StxChannel c = r.getChannel(i); // get channel c.commuteSignals(r.getBlock1().getName()); // make channel respect block order in relation if (!blk1.getName().equals(c.getBlockA()) || !blk2.getName().equals(c.getBlockB())) { // channel doesn't respect relation's blocks - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, c.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, c.getLeft(), "inconsistency between blocs of channel " + c.getName() + " and its relation " + r.getName())); continue; } @@ -1448,7 +1453,7 @@ public class AvatarFromSysML { if (c.getSignalA() != null && c.getSignalB() != null) theRelation.addSignals(getSignal(c.getSignalA()),getSignal(c.getSignalB())); else - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, c.getLeft(), + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, c.getLeft(), "missing signal binding for channel")); } } diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLError.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLError.java index be8ced22556c4f37b275aebcedd695982d982e64..6d06354999e4e5fc353bf14c0216cb9e9e4921ff 100644 --- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLError.java +++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLError.java @@ -49,11 +49,9 @@ import java_cup.runtime.ComplexSymbolFactory.Location; * @version 0.1 20/06/2024 */ public class AvatarFromSysMLError { - public static final byte LOWWARNING = 0; // TODO: probably simplify in 3 levels ERROR, WARNING, BUG - public static final byte HIGHWARNING = 1; - public static final byte LOWERROR = 2; - public static final byte HIGHERROR = 3; - public static final byte BUGERROR = 4; + public static final byte WARNING = 0; + public static final byte ERROR = 1; + public static final byte BUG = 2; /** location (sometime approximative) where the error has been detected */ private Location location; /** reference location concerned by the error, in case of conflict for example */ @@ -81,18 +79,15 @@ public class AvatarFromSysMLError { message = msg; level = lv; } + public byte getLevel() { return level; } @Override public String toString() { StringBuffer res = new StringBuffer(); - if (level > BUGERROR || level < LOWWARNING) + if (level > BUG || level < WARNING) res.append("PROBLEM "); - else if (level == LOWWARNING) - res.append("Warning "); - else if (level == HIGHWARNING) + else if (level == WARNING) res.append("WARNING "); - else if (level == LOWERROR) - res.append("Error "); - else if (level == HIGHERROR) + else if (level == ERROR) res.append("ERROR "); else res.append("BUG "); diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLLexer.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLLexer.java index 9fbdf6f853e56b41c394292afcea174ad6fb8383..a38d38b2f574cf32f827dee36922a74cf9428a9e 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 15/11/2024 19:21 */ +/* The following code was generated by JFlex 1.4.3 on 19/11/2024 15:58 */ /* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille * @@ -47,7 +47,7 @@ import avatartranslator.tosysmlv2.AvatarFromSysMLSyntax.*; /** * This class is a scanner generated by * <a href="http://www.jflex.de/">JFlex</a> 1.4.3 - * on 15/11/2024 19:21 from the specification file + * on 19/11/2024 15:58 from the specification file * <code>__AvatarFromSysMLLexer__.jflex</code> */ 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 30083a9638087cb4b7c8a9a351cb8e438a2ca4c4..67b6191162fdbab229a11048539a810daae6127c 100644 --- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java +++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java @@ -1214,13 +1214,14 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { // %%%%%%%%%%%%%%%%%%%%%%%%%%% MAIN FUNCTION %%%%%%%%%%%%%%%%%%%%%%%%%%%% public StxModel parseModel() { - try { - parse(); - return new StxModel(errors,dataTypeMap,relationMap,channelMap,blockMap,signalMap,outMessageMap,commTransitions); + try { parse(); } + catch (java.lang.Exception e) { + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, lexer.getErrorLocation(), e.getMessage())); } + try { return new StxModel(errors,dataTypeMap,relationMap,channelMap,blockMap,signalMap,outMessageMap,commTransitions); } catch (java.lang.Exception e) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, lexer.getErrorLocation(), e.getMessage())); - return new StxModel(errors,dataTypeMap,relationMap,channelMap,blockMap,signalMap,outMessageMap,commTransitions); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.BUG,"cannot create syntactic model : " + e.getMessage())); + return null; } } @@ -1531,7 +1532,7 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { this.done_parsing(); ComplexSymbolFactory.ComplexSymbol cs = (ComplexSymbolFactory.ComplexSymbol)info; lexer.setErrorLocation(cs.getLeft()); - throw new Exception("parser: syntax error for input symbol \"" + cs.getName() + "\""); + throw new Exception("parser: syntax error for input symbol \"" + cs.getName() + "\". Lexeme: " + lexer.yytext()); } /** customized error handling */ public void report_error(String message, Object info) {} @@ -1543,7 +1544,7 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { getTransition(requestIndex); if (theTransition.isRequested()) { addError( new AvatarFromSysMLError( - AvatarFromSysMLError.LOWERROR, + AvatarFromSysMLError.ERROR, left, "Transition " + requestIndex + " is already requested", theTransition.getRleft()) ); @@ -1860,7 +1861,7 @@ class CUP$AvatarFromSysMLParser$actions { dataTypeMap.put(id.getAvatarName(), (StxDataType) theStructure); } if (! theStructure.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Datatype " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "Datatype " + id.getAvatarName() + " is already declared", theStructure.getLeft()) ); flag = false; } else { @@ -1921,7 +1922,7 @@ class CUP$AvatarFromSysMLParser$actions { theField = new StxField(axleft, axright, id.getAvatarName(), tp); StxField clash = theStructure.addField(theField); if (clash != null) // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHWARNING, axleft, "Field " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, axleft, "Field " + id.getAvatarName() + " is already declared", clash.getLeft()) ); theField.setLeft(axleft); @@ -2017,7 +2018,7 @@ class CUP$AvatarFromSysMLParser$actions { Location l = idxleft; getRelation(id.getAvatarName()); if (! theRelation.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Relation " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Relation " + id.getAvatarName() + " is already declared", theRelation.getLeft()) ); flag = false; } else { @@ -2058,7 +2059,7 @@ class CUP$AvatarFromSysMLParser$actions { getRelation(id.getAvatarName()); if (! theRelation.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Relation " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Relation " + id.getAvatarName() + " is already declared", theRelation.getLeft()) ); flag = false; } else { @@ -2100,7 +2101,7 @@ class CUP$AvatarFromSysMLParser$actions { getRelation(id.getAvatarName()); if (! theRelation.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Relation " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Relation " + id.getAvatarName() + " is already declared", theRelation.getLeft()) ); flag = false; } else { @@ -2196,7 +2197,7 @@ class CUP$AvatarFromSysMLParser$actions { theBlock = tmp; block1ParamFlag = bxleft; // now, param has been parsed } else - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHWARNING,bxleft,"bloc1 is already set\n", block1ParamFlag)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING,bxleft,"bloc1 is already set\n", block1ParamFlag)); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("block1Param",19, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -2220,7 +2221,7 @@ class CUP$AvatarFromSysMLParser$actions { theBlock = tmp; // restore current block block2ParamFlag = bxleft; // now, param has been parsed } else - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHWARNING, bxleft,"bloc2 is already set\n", block2ParamFlag)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, bxleft,"bloc2 is already set\n", block2ParamFlag)); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("block2Param",20, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -2241,7 +2242,7 @@ class CUP$AvatarFromSysMLParser$actions { theRelation.setPrivate(b); // set param privateParamFlag = pxleft; // now, param has been parsed } else - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHWARNING, bxleft,"private parameter is already set\n", privateParamFlag)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, bxleft,"private parameter is already set\n", privateParamFlag)); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("privateParam",21, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -2260,13 +2261,13 @@ class CUP$AvatarFromSysMLParser$actions { if (maxsizeParamFlag == null) { // param has not yet been parsed if (! theRelation.getAsynchronous()) // irrelevant parameter - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, zxleft, "synchroneous relations don't have maxsize parameter\n")); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, zxleft, "synchroneous relations don't have maxsize parameter\n")); else { theRelation.setFifoSize(i); // set param maxsizeParamFlag = zxleft; // now, param has been parsed } } else - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHWARNING, zxleft, "maxsize is already set\n", maxsizeParamFlag)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, zxleft, "maxsize is already set\n", maxsizeParamFlag)); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("maxsizeParam",22, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -2285,13 +2286,13 @@ class CUP$AvatarFromSysMLParser$actions { if (lossyParamFlag == null) { // param has not yet been parsed if (! theRelation.getAsynchronous()) // irrelevant parameter - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, zxleft, "synchroneous relations don't have lossy parameter\n")); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, zxleft, "synchroneous relations don't have lossy parameter\n")); else { theRelation.setLossy(b); // set param lossyParamFlag = zxleft; // now, param has been parsed } } else - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHWARNING, zxleft, "lossy is already set\n", lossyParamFlag)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, zxleft, "lossy is already set\n", lossyParamFlag)); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("lossyParam",23, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -2344,11 +2345,11 @@ class CUP$AvatarFromSysMLParser$actions { getRelation(rl.getAvatarName()); getChannel(id.getAvatarName()); if (! theChannel.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Channel " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Channel " + id.getAvatarName() + " is already declared", theChannel.getLeft()) ); } else { if (theRelation.getAsynchronous()) // incompatible relation and channel types - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHWARNING, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "synchroneous channels require a synchroneous relation\n")); theRelation.addChannel(theChannel); theChannel.setLeft(pxleft); @@ -2379,11 +2380,11 @@ class CUP$AvatarFromSysMLParser$actions { getRelation(rl.getAvatarName()); getChannel(id.getAvatarName()); if (! theChannel.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Channel " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Channel " + id.getAvatarName() + " is already declared", theChannel.getLeft()) ); } else { if (! theRelation.getAsynchronous()) // incompatible relation and channel types - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHWARNING, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "FIFO channels require an asynchroneous relation\n")); theRelation.addChannel(theChannel); theChannel.setLeft(pxleft); @@ -2414,11 +2415,11 @@ class CUP$AvatarFromSysMLParser$actions { getRelation(rl.getAvatarName()); getChannel(id.getAvatarName()); if (! theChannel.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Channel " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Channel " + id.getAvatarName() + " is already declared", theChannel.getLeft()) ); } else { if (! theRelation.getAsynchronous()) // incompatible relation and channel types - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHWARNING, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "FIFO channels require an asynchroneous relation\n")); theRelation.addChannel(theChannel); theChannel.setLeft(pxleft); @@ -2589,7 +2590,7 @@ class CUP$AvatarFromSysMLParser$actions { Object b = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); if (messageChannelParam == null) // missing channel parameter - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, mxleft, "In-message channel has not been set", null) ); + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, mxleft, "In-message channel has not been set", null) ); if (flag) theStructure.setRight(bxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("inMessageDecl",35, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -2609,7 +2610,7 @@ class CUP$AvatarFromSysMLParser$actions { getInMessage(id.getAvatarName()); if (! theStructure.declare() ) { //duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "In-message profile " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "In-message profile " + id.getAvatarName() + " is already declared", theStructure.getLeft()) ); flag = false; } else { @@ -2661,7 +2662,7 @@ class CUP$AvatarFromSysMLParser$actions { Ident ch = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1).<Ident>value(); if (messageChannelParam != null) // duplicate - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "in-message channel has already been set", messageChannelParam)); else { // message param is not set getChannel(ch.getAvatarName()); @@ -2686,7 +2687,7 @@ class CUP$AvatarFromSysMLParser$actions { Ident ch = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1).<Ident>value(); if (messageChannelParam != null) // duplicate - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "in-message channel has already been set", messageChannelParam)); else { // message param is not set getChannel(ch.getAvatarName()); @@ -2753,7 +2754,7 @@ class CUP$AvatarFromSysMLParser$actions { getInMessage(m.getAvatarName()); getOutMessage(id.getAvatarName(), (StxInMessage)theStructure); if (! theOutMessage.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Out-message profile " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Out-message profile " + id.getAvatarName() + " is already declared", theStructure.getLeft()) ); flag = false; } else { @@ -2781,7 +2782,7 @@ class CUP$AvatarFromSysMLParser$actions { getInMessage(m.getAvatarName()); if (! theOutMessage.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Out-message profile " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Out-message profile " + id.getAvatarName() + " is already declared", theStructure.getLeft()) ); flag = false; } else { @@ -2833,7 +2834,7 @@ class CUP$AvatarFromSysMLParser$actions { StxField ofield = new StxField(axleft, axright, o.getAvatarName(), ""); // maps output field to its dual input field if (! theOutMessage.addFieldLink(ofield, i.getAvatarName())) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Field " + o.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "Field " + o.getAvatarName() + " is already declared") ); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("redefineField",40, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -2879,7 +2880,7 @@ class CUP$AvatarFromSysMLParser$actions { pushBlock(); // globally memorize father state getBlock(id.getAvatarName()); // set current block if (! theBlock.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Block " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Block " + id.getAvatarName() + " is already declared", theBlock.getLeft()) ); pushBlockFlag(false); } else { @@ -3040,20 +3041,20 @@ class CUP$AvatarFromSysMLParser$actions { getAttribute(id.getAvatarName(), tp); if (! theAttribute.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Attribute " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "Attribute " + id.getAvatarName() + " is already declared (or there is an attribute with same name)", theAttribute.getLeft()) ); flag = false; } else { StxElement e = theBlock.addAttribute(theAttribute); if (e != null) if (e instanceof StxTimer) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Attribute " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "Attribute " + id.getAvatarName() + " cannot be added: name already used for method", e.getLeft())); else if (e instanceof StxMethod) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Attribute " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "Attribute " + id.getAvatarName() + " cannot be added: name already used for method", e.getLeft())); else if (e instanceof StxSignal) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Attribute " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "Attribute " + id.getAvatarName() + " cannot be added: name already used for signal", e.getLeft())); else ; flag = true; @@ -3112,20 +3113,20 @@ class CUP$AvatarFromSysMLParser$actions { getAttribute(id.getAvatarName(), tp); if (! theAttribute.declare() ) { - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, rxleft, "Constant " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, rxleft, "Constant " + id.getAvatarName() + " is already declared (or there is an attribute with same name)", theAttribute.getLeft()) ); flag = false; } else { StxElement e = theBlock.addConstant(theAttribute); if (e != null) if (e instanceof StxTimer) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, rxleft, "Constant " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, rxleft, "Constant " + id.getAvatarName() + " cannot be added: name already used for method", e.getLeft())); else if (e instanceof StxMethod) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, rxleft, "Constant " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, rxleft, "Constant " + id.getAvatarName() + " cannot be added: name already used for method", e.getLeft())); else if (e instanceof StxSignal) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, rxleft, "Constant " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, rxleft, "Constant " + id.getAvatarName() + " cannot be added: name already used for signal", e.getLeft())); else ; flag = true; @@ -3209,20 +3210,20 @@ class CUP$AvatarFromSysMLParser$actions { getMethod(id.getAvatarName()); if (! theStructure.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Method " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "Method " + id.getAvatarName() + " is already declared", theStructure.getLeft()) ); flag = false; } else { StxElement e = theBlock.addMethod((StxMethod)theStructure); if (e != null) if (e instanceof StxTimer) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Method " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "Method " + id.getAvatarName() + " cannot be added: name already used for timer", e.getLeft())); else if (e instanceof StxAttribute) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Method " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "Method " + id.getAvatarName() + " cannot be added: name already used for constant or attribute", e.getLeft())); else if (e instanceof StxSignal) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Method " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "Method " + id.getAvatarName() + " cannot be added: name already used for signal", e.getLeft())); else ; flag = true; @@ -3274,20 +3275,20 @@ class CUP$AvatarFromSysMLParser$actions { getMethod(id.getAvatarName()); if (! theStructure.declare() ) { - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, cxleft, "Method " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, cxleft, "Method " + id.getAvatarName() + " is already declared", theStructure.getLeft()) ); flag = false; } else { StxElement e = theBlock.addMethod((StxMethod)theStructure); if (e != null) if (e instanceof StxTimer) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, cxleft, "Method " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, cxleft, "Method " + id.getAvatarName() + " cannot be added: name already used for timer", e.getLeft())); else if (e instanceof StxAttribute) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, cxleft, "Method " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, cxleft, "Method " + id.getAvatarName() + " cannot be added: name already used for constant or attribute", e.getLeft())); else if (e instanceof StxSignal) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, cxleft, "Method " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, cxleft, "Method " + id.getAvatarName() + " cannot be added: name already used for signal", e.getLeft())); else ; flag = true; @@ -3355,19 +3356,19 @@ class CUP$AvatarFromSysMLParser$actions { getSignal(theBlock.getName(),id.getAvatarName()); if (! theSignal.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Signal " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Signal " + id.getAvatarName() + " is already declared", theSignal.getLeft()) ); } else { StxElement e = theBlock.addSignal(theSignal); if (e != null) if (e instanceof StxTimer) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Signal " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Signal " + id.getAvatarName() + " cannot be added: name already used for timer", e.getLeft())); else if (e instanceof StxAttribute) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Signal " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Signal " + id.getAvatarName() + " cannot be added: name already used for constant or attribute", e.getLeft())); else if (e instanceof StxMethod) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Signal " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Signal " + id.getAvatarName() + " cannot be added: name already used for method", e.getLeft())); else; theSignal.setLeft(pxleft); @@ -3394,19 +3395,19 @@ class CUP$AvatarFromSysMLParser$actions { getSignal(theBlock.getName(),id.getAvatarName()); if (! theSignal.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Signal " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Signal " + id.getAvatarName() + " is already declared", theSignal.getLeft()) ); } else { StxElement e = theBlock.addSignal(theSignal); if (e != null) if (e instanceof StxTimer) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Signal " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Signal " + id.getAvatarName() + " cannot be added: name already used for timer", e.getLeft())); else if (e instanceof StxAttribute) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Signal " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Signal " + id.getAvatarName() + " cannot be added: name already used for constant or attribute", e.getLeft())); else if (e instanceof StxMethod) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Signal " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Signal " + id.getAvatarName() + " cannot be added: name already used for method", e.getLeft())); else; theSignal.setLeft(pxleft); @@ -3435,16 +3436,16 @@ class CUP$AvatarFromSysMLParser$actions { StxElement e = theBlock.addTimer(t); if (e != null) // conflict with existing item e if (e instanceof StxTimer && !e.declare()) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Timer " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Timer " + id.getAvatarName() + " is already declared", e.getLeft())); else if (e instanceof StxAttribute) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Timer " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Timer " + id.getAvatarName() + " cannot be added: name already used for constant or attribute", e.getLeft())); else if (e instanceof StxMethod) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Timer " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Timer " + id.getAvatarName() + " cannot be added: name already used for method", e.getLeft())); else if (e instanceof StxSignal) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Timer " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Timer " + id.getAvatarName() + " cannot be added: name already used for signal", e.getLeft())); else ; else t.declare(); @@ -3471,16 +3472,16 @@ class CUP$AvatarFromSysMLParser$actions { StxElement e = theBlock.addTimer(t); if (e != null) // conflict with existing item e if (e instanceof StxTimer && !e.declare()) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Timer " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Timer " + id.getAvatarName() + " is already declared", e.getLeft())); else if (e instanceof StxAttribute) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Timer " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Timer " + id.getAvatarName() + " cannot be added: name already used for constant or attribute", e.getLeft())); else if (e instanceof StxMethod) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Timer " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Timer " + id.getAvatarName() + " cannot be added: name already used for method", e.getLeft())); else if (e instanceof StxSignal) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Timer " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Timer " + id.getAvatarName() + " cannot be added: name already used for signal", e.getLeft())); else ; else t.declare(); @@ -3534,7 +3535,7 @@ class CUP$AvatarFromSysMLParser$actions { Object e = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4).<Object>value(); if (stateMachine != null) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, exleft, + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, exleft, "State Machine is already declared", stateMachine) ); else stateMachine = exleft; @@ -3752,7 +3753,7 @@ class CUP$AvatarFromSysMLParser$actions { getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -3830,7 +3831,7 @@ class CUP$AvatarFromSysMLParser$actions { getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -3887,7 +3888,7 @@ class CUP$AvatarFromSysMLParser$actions { getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -3960,7 +3961,7 @@ class CUP$AvatarFromSysMLParser$actions { getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -4038,7 +4039,7 @@ class CUP$AvatarFromSysMLParser$actions { getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -4112,7 +4113,7 @@ class CUP$AvatarFromSysMLParser$actions { getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -4186,7 +4187,7 @@ class CUP$AvatarFromSysMLParser$actions { getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -4228,7 +4229,7 @@ class CUP$AvatarFromSysMLParser$actions { getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -4270,7 +4271,7 @@ class CUP$AvatarFromSysMLParser$actions { getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -4348,7 +4349,7 @@ class CUP$AvatarFromSysMLParser$actions { getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -4426,7 +4427,7 @@ class CUP$AvatarFromSysMLParser$actions { getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -4504,7 +4505,7 @@ class CUP$AvatarFromSysMLParser$actions { getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -4612,7 +4613,7 @@ class CUP$AvatarFromSysMLParser$actions { Object z = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); if (n != requestIndex + 1) { - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, nxleft, + addError( new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, nxleft, " request index must be the request range in the request list (beginning at 1)", null) ); } if (okRequest) { @@ -4652,7 +4653,7 @@ class CUP$AvatarFromSysMLParser$actions { getTransition(requestIndex); if (theTransition.isRequested()) { // duplicate addError( new AvatarFromSysMLError( - AvatarFromSysMLError.LOWERROR, + AvatarFromSysMLError.ERROR, lexer.getLocation(), "Transition " + (requestIndex + 1) + " is already requested", theTransition.getRleft()) ); @@ -4729,7 +4730,7 @@ class CUP$AvatarFromSysMLParser$actions { Object i = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); if (!(requestIndex == 0)) { - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, ixleft, + addError( new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, ixleft, " immediate request has index 1 and thus can only be used as first request", null) ); } if (okRequest) @@ -4964,9 +4965,9 @@ class CUP$AvatarFromSysMLParser$actions { Integer i = CUP$AvatarFromSysMLParser$stack.peek().<Integer>value(); if (indexArg != null) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING,fxleft, "index parameter has already been set", indexArg)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING,fxleft, "index parameter has already been set", indexArg)); if (i != requestIndex + 1) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING,fxleft, "the index of a request must be its range (beginning at 1)", + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING,fxleft, "the index of a request must be its range (beginning at 1)", null)); if (indexArg == null) indexArg = fxleft; @@ -4992,7 +4993,7 @@ class CUP$AvatarFromSysMLParser$actions { Object d = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); if (delayArg != null) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, dxleft, "delay parameter has already been set", delayArg)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, dxleft, "delay parameter has already been set", delayArg)); argOK = false; } else { @@ -5055,7 +5056,7 @@ class CUP$AvatarFromSysMLParser$actions { // termlist fills argList if (argOK) { // not duplicate if (theTransition.getType() != AvatarFromSysMLSyntax.STXSENDTRANSITION) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, bxleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, bxleft, "such payload is only relevant for send transitions", null)); if (okRequest) theTransition.setSendPayload(argList); } @@ -5075,7 +5076,7 @@ class CUP$AvatarFromSysMLParser$actions { if (argOK) { // not duplicate if (theTransition.getType() != AvatarFromSysMLSyntax.STXSENDTRANSITION) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, bxleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, bxleft, "such payload is only relevant for send transitions", null)); if (okRequest) theTransition.setSendPayload(argList); } @@ -5095,7 +5096,7 @@ class CUP$AvatarFromSysMLParser$actions { if (argOK) { // not duplicate if (theTransition.getType() != AvatarFromSysMLSyntax.STXSENDTRANSITION) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, bxleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, bxleft, "such payload is only relevant for send transitions", null)); if (okRequest) theTransition.setSendPayload(argList); } @@ -5118,7 +5119,7 @@ class CUP$AvatarFromSysMLParser$actions { if (argOK) { // not duplicate if (theTransition.getType() != AvatarFromSysMLSyntax.STXSETTIMERTRANSITION) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, bxleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, bxleft, "such payload is only relevant for set-timer transitions", null)); argList.add(e); if (okRequest) theTransition.setSendPayload(argList); @@ -5139,7 +5140,7 @@ class CUP$AvatarFromSysMLParser$actions { if (argOK) { // not duplicate if (theTransition.getType() != AvatarFromSysMLSyntax.STXRESETTIMERTRANSITION) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, bxleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, bxleft, "such payload is only relevant for reset-timer transitions", null)); if (okRequest) theTransition.setSendPayload(argList); } @@ -5158,7 +5159,7 @@ class CUP$AvatarFromSysMLParser$actions { Object p = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1).<Object>value(); if (payloadArg != null) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, pxleft, "payload parameter has already been set", payloadArg)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, pxleft, "payload parameter has already been set", payloadArg)); argOK = false; } else { @@ -5183,11 +5184,11 @@ class CUP$AvatarFromSysMLParser$actions { Ident id = CUP$AvatarFromSysMLParser$stack.peek().<Ident>value(); if (channelArg != null) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, cxleft, "channel parameter has already been set", channelArg)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, cxleft, "channel parameter has already been set", channelArg)); else { if (theTransition.getType() != AvatarFromSysMLSyntax.STXSENDTRANSITION && theTransition.getType() != AvatarFromSysMLSyntax.STXRECEIVETRANSITION) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, cxleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, cxleft, "such channel is only relevant for send or receive transitions", null)); if (okRequest) { theTransition.setSignalName(theBlock.getName(), id.getAvatarName()); @@ -5212,10 +5213,10 @@ class CUP$AvatarFromSysMLParser$actions { Ident id = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2).<Ident>value(); if (settimerArg != null) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, cxleft, "timer channel parameter has already been set", settimerArg)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, cxleft, "timer channel parameter has already been set", settimerArg)); else { if (theTransition.getType() != AvatarFromSysMLSyntax.STXSETTIMERTRANSITION) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, cxleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, cxleft, "such channel is only relevant for set-timer transitions", null)); if (okRequest) theTransition.setTimer(id.getAvatarName()); settimerArg = cxleft; @@ -5237,10 +5238,10 @@ class CUP$AvatarFromSysMLParser$actions { Ident id = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2).<Ident>value(); if (resettimerArg != null) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, cxleft, "timer channel parameter has already been set", settimerArg)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, cxleft, "timer channel parameter has already been set", settimerArg)); else { if (theTransition.getType() != AvatarFromSysMLSyntax.STXRESETTIMERTRANSITION) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, cxleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, cxleft, "such channel is only relevant for reset-timer transitions", null)); if (okRequest) theTransition.setTimer(id.getAvatarName()); resettimerArg = cxleft; @@ -5262,10 +5263,10 @@ class CUP$AvatarFromSysMLParser$actions { Ident id = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2).<Ident>value(); if (expiretimerArg != null) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, cxleft, "timer channel parameter has already been set", settimerArg)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, cxleft, "timer channel parameter has already been set", settimerArg)); else { if (theTransition.getType() != AvatarFromSysMLSyntax.STXEXPIRETIMERTRANSITION) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, cxleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, cxleft, "such channel is only relevant for expire-timer transitions", null)); if (okRequest) theTransition.setTimer(id.getAvatarName()); expiretimerArg = cxleft; @@ -5541,7 +5542,7 @@ class CUP$AvatarFromSysMLParser$actions { getState(st.getAvatarName()); getTransition(0); if (!theTransition.declare()) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, txleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, txleft, "transition with same index has already been declared", null)); flag = false; } @@ -5569,7 +5570,7 @@ class CUP$AvatarFromSysMLParser$actions { getState(st.getAvatarName()); getTransition(i-1); if (!theTransition.declare()) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, txleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, txleft, "transition with same index has already been declared", null)); flag = true; } @@ -5823,7 +5824,7 @@ class CUP$AvatarFromSysMLParser$actions { String test = receiveMap.get(id.getAvatarName()); if (test == null) receiveMap.put(id.getAvatarName(),stringAcc.toString()); else - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, txleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, txleft, "component " + id.getAvatarName() + " has already been assigned", null)); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("receiveAssign",143, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-7), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -5887,7 +5888,7 @@ class CUP$AvatarFromSysMLParser$actions { String s = CUP$AvatarFromSysMLParser$stack.peek().<String>value(); if (distributionLbl != null) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "distribution label has already been assigned", distributionLbl)); else { theTransition.setDelayDistributionLaw(s); @@ -5910,7 +5911,7 @@ class CUP$AvatarFromSysMLParser$actions { Double r = CUP$AvatarFromSysMLParser$stack.peek().<Double>value(); if (weightLbl != null) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "weight label has already been assigned", weightLbl)); else { theTransition.setProbability(r); @@ -5933,7 +5934,7 @@ class CUP$AvatarFromSysMLParser$actions { Integer r = CUP$AvatarFromSysMLParser$stack.peek().<Integer>value(); if (weightLbl != null) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "weight label has already been assigned", weightLbl)); else { theTransition.setProbability((double)r); diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLSyntax.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLSyntax.java index 825e323817c74a049833e720a58bf7c1cdde6d21..79a7b8c034e76a37f094e8d313460334dc060a75 100644 --- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLSyntax.java +++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLSyntax.java @@ -955,7 +955,7 @@ public class AvatarFromSysMLSyntax { public void accept(StxField o, String i) { int index = inMessage.indexOf(i); if ( index == -1) { - errors.add(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, o.getLeft(),"Field " + + errors.add(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, o.getLeft(),"Field " + o.getName() + " of out-message is " + "associated to a field (" + i + ") in in-message that does not exist", inMessage.getLeft())); } @@ -978,7 +978,7 @@ public class AvatarFromSysMLSyntax { public void complete(List<AvatarFromSysMLError> errors) { if (inMessage == null) if (errors != null) { - errors.add(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, getLeft(), + errors.add(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, getLeft(), "in-message associated to out-message has not been set",null)); return; } @@ -990,7 +990,7 @@ public class AvatarFromSysMLSyntax { boolean[] inProfile = cmp.getInProfile(); for(int i =0; i < inProfile.length; i++) { // verify that no input field is missing if (!inProfile[i]) { - errors.add(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, getLeft(), + errors.add(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, getLeft(), "out-message has no field associated to in-message field " + inMessage.getFieldName(i) + " --> field added", inMessage.getLeft())); // for consistency, to avoid some redoundant error messages later. @@ -1002,7 +1002,7 @@ public class AvatarFromSysMLSyntax { channel = inMessage.channel; // set Channel if (channel == null) if (errors != null) { - errors.add(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, getLeft(), + errors.add(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, getLeft(), "Channel of in-message associated to out-message has not been set", inMessage.getLeft())); return; @@ -1010,7 +1010,7 @@ public class AvatarFromSysMLSyntax { channel.setOutProfile(this); //update channel if (channel.getSignalA() == null) if (errors != null) { - errors.add(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, getLeft(), + errors.add(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, getLeft(), "Channel of in-message associated to out-message has not associated signal", channel.getLeft())); return; @@ -1018,7 +1018,7 @@ public class AvatarFromSysMLSyntax { channel.getSignalA().setChannel(channel); // complete one signal if (channel.getSignalB() == null) if (errors != null) { - errors.add(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, getLeft(), + errors.add(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, getLeft(), "Channel of in-message associated to out-message has only one associated signal", channel.getLeft())); return; diff --git a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup index 3053344548492d7f40a821d369949f2ffa2d2745..8422fc833706c8345c81b6455d073307063f6dd2 100644 --- a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup +++ b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup @@ -57,13 +57,14 @@ parser code {: // %%%%%%%%%%%%%%%%%%%%%%%%%%% MAIN FUNCTION %%%%%%%%%%%%%%%%%%%%%%%%%%%% public StxModel parseModel() { - try { - parse(); - return new StxModel(errors,dataTypeMap,relationMap,channelMap,blockMap,signalMap,outMessageMap,commTransitions); + try { parse(); } + catch (java.lang.Exception e) { + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, lexer.getErrorLocation(), e.getMessage())); } + try { return new StxModel(errors,dataTypeMap,relationMap,channelMap,blockMap,signalMap,outMessageMap,commTransitions); } catch (java.lang.Exception e) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, lexer.getErrorLocation(), e.getMessage())); - return new StxModel(errors,dataTypeMap,relationMap,channelMap,blockMap,signalMap,outMessageMap,commTransitions); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.BUG,"cannot create syntactic model : " + e.getMessage())); + return null; } } @@ -374,7 +375,7 @@ parser code {: this.done_parsing(); ComplexSymbolFactory.ComplexSymbol cs = (ComplexSymbolFactory.ComplexSymbol)info; lexer.setErrorLocation(cs.getLeft()); - throw new Exception("parser: syntax error for input symbol \"" + cs.getName() + "\""); + throw new Exception("parser: syntax error for input symbol \"" + cs.getName() + "\". Lexeme: " + lexer.yytext()); } /** customized error handling */ public void report_error(String message, Object info) {} @@ -386,7 +387,7 @@ parser code {: getTransition(requestIndex); if (theTransition.isRequested()) { addError( new AvatarFromSysMLError( - AvatarFromSysMLError.LOWERROR, + AvatarFromSysMLError.ERROR, left, "Transition " + requestIndex + " is already requested", theTransition.getRleft()) ); @@ -564,7 +565,7 @@ datatypeDeclHEADER ::= ATTRIBUTE:a DEF IDENT:id specializes AVDATATYPE_T {: dataTypeMap.put(id.getAvatarName(), (StxDataType) theStructure); } if (! theStructure.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Datatype " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "Datatype " + id.getAvatarName() + " is already declared", theStructure.getLeft()) ); flag = false; } else { @@ -585,7 +586,7 @@ fieldDeclBegin ::= ATTRIBUTE:a IDENT:id COLON typeIdent:tp {: theField = new StxField(axleft, axright, id.getAvatarName(), tp); StxField clash = theStructure.addField(theField); if (clash != null) // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHWARNING, axleft, "Field " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, axleft, "Field " + id.getAvatarName() + " is already declared", clash.getLeft()) ); theField.setLeft(axleft); :}; @@ -608,7 +609,7 @@ syncRelDeclBegin ::= Location l = idxleft; getRelation(id.getAvatarName()); if (! theRelation.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Relation " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Relation " + id.getAvatarName() + " is already declared", theRelation.getLeft()) ); flag = false; } else { @@ -628,7 +629,7 @@ nbfRelDeclBegin ::= PART:p IDENT:id COLON NBFIFOREL_T EQUAL NBFIFOREL_T LPAR {: getRelation(id.getAvatarName()); if (! theRelation.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Relation " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Relation " + id.getAvatarName() + " is already declared", theRelation.getLeft()) ); flag = false; } else { @@ -649,7 +650,7 @@ bfRelDeclBegin ::= PART:p IDENT:id COLON BFIFOREL_T EQUAL BFIFOREL_T LPAR {: getRelation(id.getAvatarName()); if (! theRelation.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Relation " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Relation " + id.getAvatarName() + " is already declared", theRelation.getLeft()) ); flag = false; } else { @@ -679,7 +680,7 @@ block1Param ::= BLOCK1_F:b EQUAL IDENT:id {: theBlock = tmp; block1ParamFlag = bxleft; // now, param has been parsed } else - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHWARNING,bxleft,"bloc1 is already set\n", block1ParamFlag)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING,bxleft,"bloc1 is already set\n", block1ParamFlag)); :}; block2Param ::= BLOCK2_F:b EQUAL IDENT:id {: if (block2ParamFlag == null) { // param has not yet been parsed @@ -689,36 +690,36 @@ block2Param ::= BLOCK2_F:b EQUAL IDENT:id {: theBlock = tmp; // restore current block block2ParamFlag = bxleft; // now, param has been parsed } else - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHWARNING, bxleft,"bloc2 is already set\n", block2ParamFlag)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, bxleft,"bloc2 is already set\n", block2ParamFlag)); :}; privateParam ::= PRIVATE_F:p EQUAL BOOL:b {: if (privateParamFlag == null) { // param has not yet been parsed theRelation.setPrivate(b); // set param privateParamFlag = pxleft; // now, param has been parsed } else - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHWARNING, bxleft,"private parameter is already set\n", privateParamFlag)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, bxleft,"private parameter is already set\n", privateParamFlag)); :}; maxsizeParam ::= MAXSIZE_F:z EQUAL INT:i {: if (maxsizeParamFlag == null) { // param has not yet been parsed if (! theRelation.getAsynchronous()) // irrelevant parameter - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, zxleft, "synchroneous relations don't have maxsize parameter\n")); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, zxleft, "synchroneous relations don't have maxsize parameter\n")); else { theRelation.setFifoSize(i); // set param maxsizeParamFlag = zxleft; // now, param has been parsed } } else - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHWARNING, zxleft, "maxsize is already set\n", maxsizeParamFlag)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, zxleft, "maxsize is already set\n", maxsizeParamFlag)); :}; lossyParam ::= LOSSY_F:z EQUAL BOOL:b {: if (lossyParamFlag == null) { // param has not yet been parsed if (! theRelation.getAsynchronous()) // irrelevant parameter - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, zxleft, "synchroneous relations don't have lossy parameter\n")); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, zxleft, "synchroneous relations don't have lossy parameter\n")); else { theRelation.setLossy(b); // set param lossyParamFlag = zxleft; // now, param has been parsed } } else - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHWARNING, zxleft, "lossy is already set\n", lossyParamFlag)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, zxleft, "lossy is already set\n", lossyParamFlag)); :}; // CHANNEL DECLARATION $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ @@ -731,11 +732,11 @@ syncChDecl ::= PART:p IDENT:id COLON SYNC_T EQUAL SYNC_T LPAR RELATION_F EQUAL I getRelation(rl.getAvatarName()); getChannel(id.getAvatarName()); if (! theChannel.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Channel " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Channel " + id.getAvatarName() + " is already declared", theChannel.getLeft()) ); } else { if (theRelation.getAsynchronous()) // incompatible relation and channel types - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHWARNING, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "synchroneous channels require a synchroneous relation\n")); theRelation.addChannel(theChannel); theChannel.setLeft(pxleft); @@ -749,11 +750,11 @@ nbfChDecl ::= PART:p IDENT:id COLON NBFIFO_T EQUAL NBFIFO_T LPAR RELATION_F EQUA getRelation(rl.getAvatarName()); getChannel(id.getAvatarName()); if (! theChannel.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Channel " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Channel " + id.getAvatarName() + " is already declared", theChannel.getLeft()) ); } else { if (! theRelation.getAsynchronous()) // incompatible relation and channel types - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHWARNING, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "FIFO channels require an asynchroneous relation\n")); theRelation.addChannel(theChannel); theChannel.setLeft(pxleft); @@ -767,11 +768,11 @@ bfChDecl ::= PART:p IDENT:id COLON BFIFO_T EQUAL BFIFO_T LPAR RELATION_F EQUAL I getRelation(rl.getAvatarName()); getChannel(id.getAvatarName()); if (! theChannel.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Channel " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Channel " + id.getAvatarName() + " is already declared", theChannel.getLeft()) ); } else { if (! theRelation.getAsynchronous()) // incompatible relation and channel types - addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHWARNING, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "FIFO channels require an asynchroneous relation\n")); theRelation.addChannel(theChannel); theChannel.setLeft(pxleft); @@ -840,13 +841,13 @@ messageDecl ::= inMessageDecl | outMessageDecl inMessageDecl ::= inMessageDeclBegin:m inMessageDeclBODY:b {: if (messageChannelParam == null) // missing channel parameter - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, mxleft, "In-message channel has not been set", null) ); + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, mxleft, "In-message channel has not been set", null) ); if (flag) theStructure.setRight(bxright); :}; inMessageDeclBegin ::= PART:p DEF IDENT:id specializes INMESSAGE_T LBRAC {: getInMessage(id.getAvatarName()); if (! theStructure.declare() ) { //duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "In-message profile " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "In-message profile " + id.getAvatarName() + " is already declared", theStructure.getLeft()) ); flag = false; } else { @@ -863,7 +864,7 @@ inMessageDeclBODY ::= messageChannel ::= PRIVATE:p PART CHANNEL_F COLON CHANNEL_T EQUAL IDENT:ch SEMICOLON {: if (messageChannelParam != null) // duplicate - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "in-message channel has already been set", messageChannelParam)); else { // message param is not set getChannel(ch.getAvatarName()); @@ -874,7 +875,7 @@ messageChannel ::= :} | PRIVATE:p PART CHANNEL_F EQUAL IDENT:ch SEMICOLON {: if (messageChannelParam != null) // duplicate - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "in-message channel has already been set", messageChannelParam)); else { // message param is not set getChannel(ch.getAvatarName()); @@ -901,7 +902,7 @@ outMessageDeclBegin ::= getInMessage(m.getAvatarName()); getOutMessage(id.getAvatarName(), (StxInMessage)theStructure); if (! theOutMessage.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Out-message profile " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Out-message profile " + id.getAvatarName() + " is already declared", theStructure.getLeft()) ); flag = false; } else { @@ -912,7 +913,7 @@ outMessageDeclBegin ::= | PART:p DEF IDENT:id specializes IDENT:m COMMA OUTMESSAGE_T {: getInMessage(m.getAvatarName()); if (! theOutMessage.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Out-message profile " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Out-message profile " + id.getAvatarName() + " is already declared", theStructure.getLeft()) ); flag = false; } else { @@ -932,7 +933,7 @@ redefineField ::= StxField ofield = new StxField(axleft, axright, o.getAvatarName(), ""); // maps output field to its dual input field if (! theOutMessage.addFieldLink(ofield, i.getAvatarName())) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Field " + o.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "Field " + o.getAvatarName() + " is already declared") ); :}; @@ -947,7 +948,7 @@ blockDeclBegin ::= pushBlock(); // globally memorize father state getBlock(id.getAvatarName()); // set current block if (! theBlock.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Block " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Block " + id.getAvatarName() + " is already declared", theBlock.getLeft()) ); pushBlockFlag(false); } else { @@ -990,20 +991,20 @@ attributeDeclHEADER ::= ATTRIBUTE:a IDENT:id COLON typeIdent:tp {: getAttribute(id.getAvatarName(), tp); if (! theAttribute.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Attribute " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "Attribute " + id.getAvatarName() + " is already declared (or there is an attribute with same name)", theAttribute.getLeft()) ); flag = false; } else { StxElement e = theBlock.addAttribute(theAttribute); if (e != null) if (e instanceof StxTimer) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Attribute " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "Attribute " + id.getAvatarName() + " cannot be added: name already used for method", e.getLeft())); else if (e instanceof StxMethod) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Attribute " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "Attribute " + id.getAvatarName() + " cannot be added: name already used for method", e.getLeft())); else if (e instanceof StxSignal) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Attribute " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "Attribute " + id.getAvatarName() + " cannot be added: name already used for signal", e.getLeft())); else ; flag = true; @@ -1025,20 +1026,20 @@ constantDeclHEADER ::= READONLY:r ATTRIBUTE IDENT:id COLON typeIdent:tp {: getAttribute(id.getAvatarName(), tp); if (! theAttribute.declare() ) { - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, rxleft, "Constant " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, rxleft, "Constant " + id.getAvatarName() + " is already declared (or there is an attribute with same name)", theAttribute.getLeft()) ); flag = false; } else { StxElement e = theBlock.addConstant(theAttribute); if (e != null) if (e instanceof StxTimer) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, rxleft, "Constant " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, rxleft, "Constant " + id.getAvatarName() + " cannot be added: name already used for method", e.getLeft())); else if (e instanceof StxMethod) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, rxleft, "Constant " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, rxleft, "Constant " + id.getAvatarName() + " cannot be added: name already used for method", e.getLeft())); else if (e instanceof StxSignal) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, rxleft, "Constant " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, rxleft, "Constant " + id.getAvatarName() + " cannot be added: name already used for signal", e.getLeft())); else ; flag = true; @@ -1064,20 +1065,20 @@ voidMethodDecl ::= voidMethodDeclBegin ::= ACTION:a IDENT:id COLON AVVOIDMETHOD_T {: getMethod(id.getAvatarName()); if (! theStructure.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Method " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "Method " + id.getAvatarName() + " is already declared", theStructure.getLeft()) ); flag = false; } else { StxElement e = theBlock.addMethod((StxMethod)theStructure); if (e != null) if (e instanceof StxTimer) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Method " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "Method " + id.getAvatarName() + " cannot be added: name already used for timer", e.getLeft())); else if (e instanceof StxAttribute) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Method " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "Method " + id.getAvatarName() + " cannot be added: name already used for constant or attribute", e.getLeft())); else if (e instanceof StxSignal) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Method " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "Method " + id.getAvatarName() + " cannot be added: name already used for signal", e.getLeft())); else ; flag = true; @@ -1096,20 +1097,20 @@ calcMethodDecl ::= calcMethodDeclBegin ::= CALC:c IDENT:id COLON AVCALCMETHOD_T {: getMethod(id.getAvatarName()); if (! theStructure.declare() ) { - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, cxleft, "Method " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, cxleft, "Method " + id.getAvatarName() + " is already declared", theStructure.getLeft()) ); flag = false; } else { StxElement e = theBlock.addMethod((StxMethod)theStructure); if (e != null) if (e instanceof StxTimer) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, cxleft, "Method " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, cxleft, "Method " + id.getAvatarName() + " cannot be added: name already used for timer", e.getLeft())); else if (e instanceof StxAttribute) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, cxleft, "Method " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, cxleft, "Method " + id.getAvatarName() + " cannot be added: name already used for constant or attribute", e.getLeft())); else if (e instanceof StxSignal) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, cxleft, "Method " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, cxleft, "Method " + id.getAvatarName() + " cannot be added: name already used for signal", e.getLeft())); else ; flag = true; @@ -1133,19 +1134,19 @@ signalDecl ::= PART:p IDENT:id COLON FIFO_T SEMICOLON:q {: getSignal(theBlock.getName(),id.getAvatarName()); if (! theSignal.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Signal " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Signal " + id.getAvatarName() + " is already declared", theSignal.getLeft()) ); } else { StxElement e = theBlock.addSignal(theSignal); if (e != null) if (e instanceof StxTimer) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Signal " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Signal " + id.getAvatarName() + " cannot be added: name already used for timer", e.getLeft())); else if (e instanceof StxAttribute) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Signal " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Signal " + id.getAvatarName() + " cannot be added: name already used for constant or attribute", e.getLeft())); else if (e instanceof StxMethod) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Signal " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Signal " + id.getAvatarName() + " cannot be added: name already used for method", e.getLeft())); else; theSignal.setLeft(pxleft); @@ -1155,19 +1156,19 @@ signalDecl ::= | PART:p IDENT:id COLON CHANNEL_T SEMICOLON:q {: getSignal(theBlock.getName(),id.getAvatarName()); if (! theSignal.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Signal " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Signal " + id.getAvatarName() + " is already declared", theSignal.getLeft()) ); } else { StxElement e = theBlock.addSignal(theSignal); if (e != null) if (e instanceof StxTimer) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Signal " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Signal " + id.getAvatarName() + " cannot be added: name already used for timer", e.getLeft())); else if (e instanceof StxAttribute) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Signal " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Signal " + id.getAvatarName() + " cannot be added: name already used for constant or attribute", e.getLeft())); else if (e instanceof StxMethod) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Signal " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Signal " + id.getAvatarName() + " cannot be added: name already used for method", e.getLeft())); else; theSignal.setLeft(pxleft); @@ -1184,16 +1185,16 @@ timerDecl ::= StxElement e = theBlock.addTimer(t); if (e != null) // conflict with existing item e if (e instanceof StxTimer && !e.declare()) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Timer " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Timer " + id.getAvatarName() + " is already declared", e.getLeft())); else if (e instanceof StxAttribute) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Timer " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Timer " + id.getAvatarName() + " cannot be added: name already used for constant or attribute", e.getLeft())); else if (e instanceof StxMethod) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Timer " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Timer " + id.getAvatarName() + " cannot be added: name already used for method", e.getLeft())); else if (e instanceof StxSignal) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Timer " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Timer " + id.getAvatarName() + " cannot be added: name already used for signal", e.getLeft())); else ; else t.declare(); @@ -1203,16 +1204,16 @@ timerDecl ::= StxElement e = theBlock.addTimer(t); if (e != null) // conflict with existing item e if (e instanceof StxTimer && !e.declare()) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Timer " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Timer " + id.getAvatarName() + " is already declared", e.getLeft())); else if (e instanceof StxAttribute) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Timer " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Timer " + id.getAvatarName() + " cannot be added: name already used for constant or attribute", e.getLeft())); else if (e instanceof StxMethod) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Timer " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Timer " + id.getAvatarName() + " cannot be added: name already used for method", e.getLeft())); else if (e instanceof StxSignal) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Timer " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, pxleft, "Timer " + id.getAvatarName() + " cannot be added: name already used for signal", e.getLeft())); else ; else t.declare(); @@ -1237,7 +1238,7 @@ stateMachine ::= ; stateMachineBegin ::= EXHIBIT:e STATE STATEMACHINE COLON AVSTATEMACHINE_T {: if (stateMachine != null) - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, exleft, + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, exleft, "State Machine is already declared", stateMachine) ); else stateMachine = exleft; @@ -1272,7 +1273,7 @@ startState ::= startStateBegin ::= ENTRY:z ACTION IDENT:id COLON AVSTARTSTATE_T {: getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -1299,7 +1300,7 @@ standardState ::= standardStateBegin ::= STATE:z IDENT:id COLON AVSTANDARDSTATE_T {: getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -1322,7 +1323,7 @@ stopState ::= stopStateBegin ::= EXIT:z ACTION IDENT:id COLON AVSTOPSTATE_T {: getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -1347,7 +1348,7 @@ sendState ::= sendStateBegin ::= STATE:z IDENT:id COLON AVSENDSTATE_T {: getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -1374,7 +1375,7 @@ receiveState ::= receiveStateBegin ::= STATE:z IDENT:id COLON AVRECEIVESTATE_T {: getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -1400,7 +1401,7 @@ randomState ::= randomStateBegin ::= STATE:z IDENT:id COLON AVRANDOMSTATE_T {: getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -1426,7 +1427,7 @@ countState ::= countStateBegin ::= STATE:z IDENT:id COLON AVCOUNTSTATE_T {: getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -1445,7 +1446,7 @@ presendState ::= presendStateBegin ::= STATE:z IDENT:id COLON AVPRESENDSTATE_T {: getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -1464,7 +1465,7 @@ prereceiveState ::= prereceiveStateBegin ::= STATE:z IDENT:id COLON AVPRERECEIVESTATE_T {: getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -1491,7 +1492,7 @@ setTimerState ::= setTimerStateBegin ::= STATE:z IDENT:id COLON AVSETTIMERSTATE_T {: getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -1518,7 +1519,7 @@ resetTimerState ::= resetTimerStateBegin ::= STATE:z IDENT:id COLON AVRESETTIMERSTATE_T {: getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -1545,7 +1546,7 @@ expireTimerState ::= expireTimerStateBegin ::= STATE:z IDENT:id COLON AVEXPIRETIMERSTATE_T {: getState(id.getAvatarName()); if (! theState.declare() ) { // duplicate - addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + + addError( new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; flag = false; @@ -1578,7 +1579,7 @@ requestList ::= request | request COMMA requestList; request ::= dummy IF:i iexpr:e QUEST simpleRequest:q ELSE NOKREQUEST_U LPAR INT:n RPAR:z {: if (n != requestIndex + 1) { - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, nxleft, + addError( new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, nxleft, " request index must be the request range in the request list (beginning at 1)", null) ); } if (okRequest) { @@ -1600,7 +1601,7 @@ dummy ::= {: getTransition(requestIndex); if (theTransition.isRequested()) { // duplicate addError( new AvatarFromSysMLError( - AvatarFromSysMLError.LOWERROR, + AvatarFromSysMLError.ERROR, lexer.getLocation(), "Transition " + (requestIndex + 1) + " is already requested", theTransition.getRleft()) ); @@ -1620,7 +1621,7 @@ simpleRequest ::= trivialRequest | sendRequest | receiveRequest trivialRequest ::= IMMEDIATEREQUEST_U:i {: if (!(requestIndex == 0)) { - addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, ixleft, + addError( new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, ixleft, " immediate request has index 1 and thus can only be used as first request", null) ); } if (okRequest) @@ -1672,9 +1673,9 @@ requestArg ::= indexParam | delayParam | channelParam | payloadParam | settimerP // INDEX ......... indexParam ::= INDEX_F:f EQUAL INT:i {: if (indexArg != null) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING,fxleft, "index parameter has already been set", indexArg)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING,fxleft, "index parameter has already been set", indexArg)); if (i != requestIndex + 1) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING,fxleft, "the index of a request must be its range (beginning at 1)", + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING,fxleft, "the index of a request must be its range (beginning at 1)", null)); if (indexArg == null) indexArg = fxleft; :}; @@ -1683,7 +1684,7 @@ indexParam ::= INDEX_F:f EQUAL INT:i {: delayParam ::= delayKeyword EQUAL delayExpr; delayKeyword ::= DELAY_F:d {: if (delayArg != null) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, dxleft, "delay parameter has already been set", delayArg)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, dxleft, "delay parameter has already been set", delayArg)); argOK = false; } else { @@ -1708,7 +1709,7 @@ payloadParam ::= payloadParamBegin:b IDENT LPAR termList RPAR {: // termlist fills argList if (argOK) { // not duplicate if (theTransition.getType() != AvatarFromSysMLSyntax.STXSENDTRANSITION) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, bxleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, bxleft, "such payload is only relevant for send transitions", null)); if (okRequest) theTransition.setSendPayload(argList); } @@ -1717,7 +1718,7 @@ payloadParam ::= | payloadParamBegin:b IDENT LPAR RPAR {: if (argOK) { // not duplicate if (theTransition.getType() != AvatarFromSysMLSyntax.STXSENDTRANSITION) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, bxleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, bxleft, "such payload is only relevant for send transitions", null)); if (okRequest) theTransition.setSendPayload(argList); } @@ -1726,7 +1727,7 @@ payloadParam ::= | payloadParamBegin:b IDENT {: if (argOK) { // not duplicate if (theTransition.getType() != AvatarFromSysMLSyntax.STXSENDTRANSITION) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, bxleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, bxleft, "such payload is only relevant for send transitions", null)); if (okRequest) theTransition.setSendPayload(argList); } @@ -1735,7 +1736,7 @@ payloadParam ::= | payloadParamBegin:b TIMERSETMSG_T LPAR stxExpr:e RPAR {: if (argOK) { // not duplicate if (theTransition.getType() != AvatarFromSysMLSyntax.STXSETTIMERTRANSITION) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, bxleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, bxleft, "such payload is only relevant for set-timer transitions", null)); argList.add(e); if (okRequest) theTransition.setSendPayload(argList); @@ -1745,7 +1746,7 @@ payloadParam ::= | payloadParamBegin:b TIMERRESETMSG_T LPAR RPAR {: if (argOK) { // not duplicate if (theTransition.getType() != AvatarFromSysMLSyntax.STXRESETTIMERTRANSITION) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, bxleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, bxleft, "such payload is only relevant for reset-timer transitions", null)); if (okRequest) theTransition.setSendPayload(argList); } @@ -1754,7 +1755,7 @@ payloadParam ::= ; payloadParamBegin ::= PAYLOAD_F:p EQUAL {: if (payloadArg != null) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, pxleft, "payload parameter has already been set", payloadArg)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, pxleft, "payload parameter has already been set", payloadArg)); argOK = false; } else { @@ -1766,11 +1767,11 @@ payloadParamBegin ::= PAYLOAD_F:p EQUAL {: // CHANNEL ......... channelParam ::= CHANNEL_F:c EQUAL IDENT:id {: if (channelArg != null) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, cxleft, "channel parameter has already been set", channelArg)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, cxleft, "channel parameter has already been set", channelArg)); else { if (theTransition.getType() != AvatarFromSysMLSyntax.STXSENDTRANSITION && theTransition.getType() != AvatarFromSysMLSyntax.STXRECEIVETRANSITION) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, cxleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, cxleft, "such channel is only relevant for send or receive transitions", null)); if (okRequest) { theTransition.setSignalName(theBlock.getName(), id.getAvatarName()); @@ -1782,10 +1783,10 @@ channelParam ::= CHANNEL_F:c EQUAL IDENT:id {: // SET TIMER TIMER PARAM ......... settimerParam ::= CHANNEL_F:c EQUAL IDENT:id POINT SET_TM {: if (settimerArg != null) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, cxleft, "timer channel parameter has already been set", settimerArg)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, cxleft, "timer channel parameter has already been set", settimerArg)); else { if (theTransition.getType() != AvatarFromSysMLSyntax.STXSETTIMERTRANSITION) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, cxleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, cxleft, "such channel is only relevant for set-timer transitions", null)); if (okRequest) theTransition.setTimer(id.getAvatarName()); settimerArg = cxleft; @@ -1794,10 +1795,10 @@ settimerParam ::= CHANNEL_F:c EQUAL IDENT:id POINT SET_TM {: // RESET TIMER TIMER PARAM ......... resettimerParam ::= CHANNEL_F:c EQUAL IDENT:id POINT RESET_TM {: if (resettimerArg != null) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, cxleft, "timer channel parameter has already been set", settimerArg)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, cxleft, "timer channel parameter has already been set", settimerArg)); else { if (theTransition.getType() != AvatarFromSysMLSyntax.STXRESETTIMERTRANSITION) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, cxleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, cxleft, "such channel is only relevant for reset-timer transitions", null)); if (okRequest) theTransition.setTimer(id.getAvatarName()); resettimerArg = cxleft; @@ -1806,10 +1807,10 @@ resettimerParam ::= CHANNEL_F:c EQUAL IDENT:id POINT RESET_TM {: // EXPIRE TIMER TIMER PARAM ......... expiretimerParam ::= CHANNEL_F:c EQUAL IDENT:id POINT EXPIRE_TM {: if (expiretimerArg != null) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, cxleft, "timer channel parameter has already been set", settimerArg)); + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, cxleft, "timer channel parameter has already been set", settimerArg)); else { if (theTransition.getType() != AvatarFromSysMLSyntax.STXEXPIRETIMERTRANSITION) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, cxleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.WARNING, cxleft, "such channel is only relevant for expire-timer transitions", null)); if (okRequest) theTransition.setTimer(id.getAvatarName()); expiretimerArg = cxleft; @@ -1903,7 +1904,7 @@ transitionBegin ::= getState(st.getAvatarName()); getTransition(0); if (!theTransition.declare()) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, txleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, txleft, "transition with same index has already been declared", null)); flag = false; } @@ -1914,7 +1915,7 @@ transitionBegin ::= getState(st.getAvatarName()); getTransition(i-1); if (!theTransition.declare()) { - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, txleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, txleft, "transition with same index has already been declared", null)); flag = true; } @@ -1994,7 +1995,7 @@ receiveAssign ::= THEN:t assign fullIdent GETS MSG_U POINT IDENT:id SEMICOLON {: String test = receiveMap.get(id.getAvatarName()); if (test == null) receiveMap.put(id.getAvatarName(),stringAcc.toString()); else - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, txleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, txleft, "component " + id.getAvatarName() + " has already been assigned", null)); :}; @@ -2004,7 +2005,7 @@ transitionLabels ::= transitionLabel SEMICOLON | transitionLabel SEMICOLON trans transitionLabel ::= distributionLabel | weightLabel | extraLabel; distributionLabel ::= ATTRIBUTE:a DISTRIBUTION_A COLON STRING_T EQUAL STRING:s {: if (distributionLbl != null) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "distribution label has already been assigned", distributionLbl)); else { theTransition.setDelayDistributionLaw(s); @@ -2014,7 +2015,7 @@ distributionLabel ::= ATTRIBUTE:a DISTRIBUTION_A COLON STRING_T EQUAL STRING:s { weightLabel ::= ATTRIBUTE:a WEIGHT_A COLON REAL_T EQUAL REAL:r {: if (weightLbl != null) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "weight label has already been assigned", weightLbl)); else { theTransition.setProbability(r); @@ -2023,7 +2024,7 @@ weightLabel ::= :} | ATTRIBUTE:a WEIGHT_A COLON REAL_T EQUAL INT:r {: if (weightLbl != null) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, + addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, axleft, "weight label has already been assigned", weightLbl)); else { theTransition.setProbability((double)r);