public override object Visit (Mono.CSharp.Nullable.NullCoalescingOperator nullCoalescingOperator) { var result = new BinaryOperatorExpression (); result.BinaryOperatorType = BinaryOperatorType.NullCoalescing; result.AddChild ((INode)nullCoalescingOperator.Left.Accept (this), BinaryOperatorExpression.LeftExpressionRole); var location = LocationsBag.GetLocations (nullCoalescingOperator); if (location != null) result.AddChild (new CSharpTokenNode (Convert (location[0]), 2), BinaryOperatorExpression.OperatorRole); result.AddChild ((INode)nullCoalescingOperator.Right.Accept (this), BinaryOperatorExpression.RightExpressionRole); return result; }
public override object Visit (Binary binaryExpression) { var result = new BinaryOperatorExpression (); int opLength = 1; switch (binaryExpression.Oper) { case Binary.Operator.Multiply: result.BinaryOperatorType = BinaryOperatorType.Multiply; break; case Binary.Operator.Division: result.BinaryOperatorType = BinaryOperatorType.Divide; break; case Binary.Operator.Modulus: result.BinaryOperatorType = BinaryOperatorType.Modulus; break; case Binary.Operator.Addition: result.BinaryOperatorType = BinaryOperatorType.Add; break; case Binary.Operator.Subtraction: result.BinaryOperatorType = BinaryOperatorType.Subtract; break; case Binary.Operator.LeftShift: result.BinaryOperatorType = BinaryOperatorType.ShiftLeft; opLength = 2; break; case Binary.Operator.RightShift: result.BinaryOperatorType = BinaryOperatorType.ShiftRight; opLength = 2; break; case Binary.Operator.LessThan: result.BinaryOperatorType = BinaryOperatorType.LessThan; break; case Binary.Operator.GreaterThan: result.BinaryOperatorType = BinaryOperatorType.GreaterThan; break; case Binary.Operator.LessThanOrEqual: result.BinaryOperatorType = BinaryOperatorType.LessThanOrEqual; opLength = 2; break; case Binary.Operator.GreaterThanOrEqual: result.BinaryOperatorType = BinaryOperatorType.GreaterThanOrEqual; opLength = 2; break; case Binary.Operator.Equality: result.BinaryOperatorType = BinaryOperatorType.Equality; opLength = 2; break; case Binary.Operator.Inequality: result.BinaryOperatorType = BinaryOperatorType.InEquality; opLength = 2; break; case Binary.Operator.BitwiseAnd: result.BinaryOperatorType = BinaryOperatorType.BitwiseAnd; break; case Binary.Operator.ExclusiveOr: result.BinaryOperatorType = BinaryOperatorType.ExclusiveOr; break; case Binary.Operator.BitwiseOr: result.BinaryOperatorType = BinaryOperatorType.BitwiseOr; break; case Binary.Operator.LogicalAnd: result.BinaryOperatorType = BinaryOperatorType.LogicalAnd; opLength = 2; break; case Binary.Operator.LogicalOr: result.BinaryOperatorType = BinaryOperatorType.LogicalOr; opLength = 2; break; } result.AddChild ((INode)binaryExpression.Left.Accept (this), BinaryOperatorExpression.LeftExpressionRole); result.AddChild (new CSharpTokenNode (Convert (binaryExpression.Location), opLength), BinaryOperatorExpression.OperatorRole); result.AddChild ((INode)binaryExpression.Right.Accept (this), BinaryOperatorExpression.RightExpressionRole); return result; }
public override object Visit (Mono.CSharp.Nullable.NullCoalescingOperator nullCoalescingOperator) { var result = new BinaryOperatorExpression (); result.Operator = BinaryOperatorType.NullCoalescing; result.AddChild ((Expression)nullCoalescingOperator.Left.Accept (this), BinaryOperatorExpression.LeftRole); result.AddChild (new CSharpTokenNode (Convert (nullCoalescingOperator.Location), 2), BinaryOperatorExpression.OperatorRole); result.AddChild ((Expression)nullCoalescingOperator.Right.Accept (this), BinaryOperatorExpression.RightRole); return result; }
public override object Visit(Binary binaryExpression) { var result = new BinaryOperatorExpression(); switch (binaryExpression.Oper) { case Binary.Operator.Multiply: result.Operator = BinaryOperatorType.Multiply; break; case Binary.Operator.Division: result.Operator = BinaryOperatorType.Divide; break; case Binary.Operator.Modulus: result.Operator = BinaryOperatorType.Modulus; break; case Binary.Operator.Addition: result.Operator = BinaryOperatorType.Add; break; case Binary.Operator.Subtraction: result.Operator = BinaryOperatorType.Subtract; break; case Binary.Operator.LeftShift: result.Operator = BinaryOperatorType.ShiftLeft; break; case Binary.Operator.RightShift: result.Operator = BinaryOperatorType.ShiftRight; break; case Binary.Operator.LessThan: result.Operator = BinaryOperatorType.LessThan; break; case Binary.Operator.GreaterThan: result.Operator = BinaryOperatorType.GreaterThan; break; case Binary.Operator.LessThanOrEqual: result.Operator = BinaryOperatorType.LessThanOrEqual; break; case Binary.Operator.GreaterThanOrEqual: result.Operator = BinaryOperatorType.GreaterThanOrEqual; break; case Binary.Operator.Equality: result.Operator = BinaryOperatorType.Equality; break; case Binary.Operator.Inequality: result.Operator = BinaryOperatorType.InEquality; break; case Binary.Operator.BitwiseAnd: result.Operator = BinaryOperatorType.BitwiseAnd; break; case Binary.Operator.ExclusiveOr: result.Operator = BinaryOperatorType.ExclusiveOr; break; case Binary.Operator.BitwiseOr: result.Operator = BinaryOperatorType.BitwiseOr; break; case Binary.Operator.LogicalAnd: result.Operator = BinaryOperatorType.ConditionalAnd; break; case Binary.Operator.LogicalOr: result.Operator = BinaryOperatorType.ConditionalOr; break; } if (binaryExpression.Left != null) result.AddChild((Expression)binaryExpression.Left.Accept(this), BinaryOperatorExpression.LeftRole); var location = LocationsBag.GetLocations(binaryExpression); if (location != null) { var r = BinaryOperatorExpression.GetOperatorRole(result.Operator); result.AddChild(new CSharpTokenNode(Convert(location [0]), r), r); } if (binaryExpression.Right != null) result.AddChild((Expression)binaryExpression.Right.Accept(this), BinaryOperatorExpression.RightRole); return result; }
public override object Visit(ICSharpCode.NRefactory.MonoCSharp.Nullable.NullCoalescingOperator nullCoalescingOperator) { var result = new BinaryOperatorExpression(); result.Operator = BinaryOperatorType.NullCoalescing; if (nullCoalescingOperator.LeftExpression != null) result.AddChild((Expression)nullCoalescingOperator.LeftExpression.Accept(this), BinaryOperatorExpression.LeftRole); var location = LocationsBag.GetLocations(nullCoalescingOperator); if (location != null) result.AddChild(new CSharpTokenNode(Convert(location [0]), BinaryOperatorExpression.NullCoalescingRole), BinaryOperatorExpression.NullCoalescingRole); if (nullCoalescingOperator.RightExpression != null) result.AddChild((Expression)nullCoalescingOperator.RightExpression.Accept(this), BinaryOperatorExpression.RightRole); return result; }