tagSetMark.done(MathematicaElementTypes.TAG_SET_EXPRESSION);
return MathematicaParser.result(tagSetMark, MathematicaElementTypes.TAG_SET_EXPRESSION, false);
}
// IElementType tokenType = parser.getTokenTypeSave(tagSetMark);
IElementType tokenType = parser.getTokenType();
if (tokenType == null) {
parser.error(ParserBundle.message("TagSet.missing.set"));
tagSetMark.done(MathematicaElementTypes.TAG_SET_EXPRESSION);
return MathematicaParser.result(tagSetMark, MathematicaElementTypes.TAG_SET_EXPRESSION, false);
}
// Form expr0 /: expr1 =. where nothing needs to be parsed right of the =.
if (tokenType.equals(MathematicaElementTypes.UNSET)) {
parser.advanceLexer();
tagSetMark.done(MathematicaElementTypes.TAG_UNSET_EXPRESSION);
return MathematicaParser.result(tagSetMark, MathematicaElementTypes.TAG_UNSET_EXPRESSION, expr1.isParsed());
}
// Form expr0 /: expr1 := expr2 or expr0 /: expr1 = expr2 where we need to parse expr2
if ((tokenType.equals(MathematicaElementTypes.SET)) || (tokenType.equals(MathematicaElementTypes.SET_DELAYED))) {
parser.advanceLexer();
MathematicaParser.Result expr2 = parser.parseExpression(myPrecedence);
IElementType endType = tokenType.equals(MathematicaElementTypes.SET) ? MathematicaElementTypes.TAG_SET_EXPRESSION : MathematicaElementTypes.TAG_SET_DELAYED_EXPRESSION;
if (!expr2.isValid()) {
parser.error(ParserBundle.message("General.expr.expected"));
}
tagSetMark.done(endType);