public AssignmentOperator ResolveAssignmentOperator(string op)
{
switch(op)
{
case "=" : return AssignmentOperator.Assign;
case "+=" : return AssignmentOperator.Add;
case "-=" : return AssignmentOperator.Substract;
case "*=" : return AssignmentOperator.Multiply;
case "%=" : return AssignmentOperator.Modulo;
case "<<=" : return AssignmentOperator.ShiftLeft;
case ">>=" : return AssignmentOperator.ShiftRight;
case ">>>=" : return AssignmentOperator.UnsignedRightShift;
case "&=" : return AssignmentOperator.And;
case "|=" : return AssignmentOperator.Or;
case "^=" : return AssignmentOperator.XOr;
case "/=" : return AssignmentOperator.Divide;
default : throw new NotSupportedException("Invalid assignment operator: " + op);
}
}