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);