private void GenerateCodeForAssignmentOperator(SplitExpression expression)
{
KeywordToken theOperator = expression.Operator as KeywordToken;
if ((theOperator == null) || (!theOperator.IsModificationOperator))
{
throw new CompilerMessage(ErrorCode.InternalError, "GenerateCodeForAssignmentOperator called without KeywordToken");
}
if (expression.LeftHandSide.Count < 1)
{
throw new CompilerMessage(ErrorCode.OperatorExpectsLeftHandSide, "Expected expression before '" + expression.Operator.Name + "'");
}
if ((theOperator.SymbolType != PredefinedSymbol.PlusPlus) &&
(theOperator.SymbolType != PredefinedSymbol.MinusMinus))
{
GenerateCodeForExpression(expression.RightHandSide);
}
if (theOperator.SymbolType != PredefinedSymbol.SetEqual)
{
GenerateCodeForExpression(expression.LeftHandSide);
}
// TODO: Apply operator
//TODO: GenerateCodeToWriteNewVariableValue
}