protected override void CloneTo(CloneContext clonectx, Expression t) { CompoundAssign ctarget = (CompoundAssign)t; ctarget.right = ctarget.source = source.Clone(clonectx); ctarget.target = target.Clone(clonectx); }
public override object Visit(CompoundAssign compoundAssign) { var result = new AssignmentExpression(); switch (compoundAssign.Op) { case Binary.Operator.Multiply: result.Operator = AssignmentOperatorType.Multiply; break; case Binary.Operator.Division: result.Operator = AssignmentOperatorType.Divide; break; case Binary.Operator.Modulus: result.Operator = AssignmentOperatorType.Modulus; break; case Binary.Operator.Addition: result.Operator = AssignmentOperatorType.Add; break; case Binary.Operator.Subtraction: result.Operator = AssignmentOperatorType.Subtract; break; case Binary.Operator.LeftShift: result.Operator = AssignmentOperatorType.ShiftLeft; break; case Binary.Operator.RightShift: result.Operator = AssignmentOperatorType.ShiftRight; break; case Binary.Operator.BitwiseAnd: result.Operator = AssignmentOperatorType.BitwiseAnd; break; case Binary.Operator.BitwiseOr: result.Operator = AssignmentOperatorType.BitwiseOr; break; case Binary.Operator.ExclusiveOr: result.Operator = AssignmentOperatorType.ExclusiveOr; break; } if (compoundAssign.Target != null) result.AddChild((Expression)compoundAssign.Target.Accept(this), AssignmentExpression.LeftRole); var location = LocationsBag.GetLocations(compoundAssign); if (location != null) { var r = AssignmentExpression.GetOperatorRole (result.Operator); result.AddChild(new CSharpTokenNode(Convert(location [0]), r), r); } if (compoundAssign.Source != null) result.AddChild ((Expression)compoundAssign.Source.Accept (this), AssignmentExpression.RightRole); return result; }
public virtual object Visit (CompoundAssign compoundAssign) { return null; }
void case_642() #line 4499 "cs-parser.jay" { yyVal = new CompoundAssign (Binary.Operator.ExclusiveOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]); lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop])); }
public virtual object Visit(CompoundAssign compoundAssign) { return(null); }
void case_639() #line 4484 "cs-parser.jay" { yyVal = new CompoundAssign (Binary.Operator.RightShift, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]); lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop])); }
void case_640() #line 4489 "cs-parser.jay" { yyVal = new CompoundAssign (Binary.Operator.BitwiseAnd, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]); lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop])); }
void case_637() #line 4474 "cs-parser.jay" { yyVal = new CompoundAssign (Binary.Operator.Subtraction, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]); lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop])); }
void case_633() #line 4454 "cs-parser.jay" { yyVal = new CompoundAssign (Binary.Operator.Multiply, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]); lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop])); }
void case_650() #line 5337 "ps-parser.jay" { yyVal = new CompoundAssign (Binary.Operator.LogicalOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]); lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop])); }
void case_644() #line 5307 "ps-parser.jay" { yyVal = new CompoundAssign (Binary.Operator.LeftShift, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]); lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop])); }
void case_641() #line 5292 "ps-parser.jay" { yyVal = new CompoundAssign (Binary.Operator.Modulus, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]); lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop])); }