private void GenerateCodeForExpression(Expression expression)
{
Expression split = expression.SplitExpressionOnLowestPrecendenceOperator();
if (split is SplitExpression)
{
SplitExpression splitExpression = (SplitExpression)split;
if (splitExpression.Operator is OperatorToken)
{
GenerateCodeForStandardOperator(splitExpression);
}
else
{
GenerateCodeForAssignmentOperator(splitExpression);
}
// TODO: Check type mismatch after expressions have been parsed
//splitExpression.CheckForTypeMismatch();
//splitExpression.CheckOperatorCanBeAppliedToTheseTypes();
}
else
{
GenerateCodeForExpressionWithoutOperator(split);
}
}