Beispiel #1
0
        private void TestAssignment(AssignmentOperationKind kind)
        {
            string text = "$a " + Operation.GetText(kind) + " 42";
            var    expr = NSScript.ParseExpression(text) as AssignmentExpression;

            Assert.NotNull(expr);
            Assert.Equal(SyntaxNodeKind.AssignmentExpression, expr.Kind);
            Assert.Equal(kind, expr.OperationKind);

            var target = expr.Target as Variable;

            Assert.NotNull(target);
            Assert.Equal("$a", target.Name.FullName);

            var value = expr.Value as Literal;

            Assert.NotNull(value);
            Assert.Equal(42, value.Value.RawValue);
        }
Beispiel #2
0
        public static string GetText(AssignmentOperationKind assignmentOperationKind)
        {
            switch (assignmentOperationKind)
            {
            case AssignmentOperationKind.SimpleAssignment:
                return("=");

            case AssignmentOperationKind.AddAssignment:
                return("+=");

            case AssignmentOperationKind.SubtractAssignment:
                return("-=");

            case AssignmentOperationKind.MultiplyAssignment:
                return("*=");

            case AssignmentOperationKind.DivideAssignment:
                return("/=");

            default:
                return(string.Empty);
            }
        }
Beispiel #3
0
 public static AssignmentExpression Assignment(Variable target, AssignmentOperationKind operationKind, Expression value) =>
 new AssignmentExpression(target, operationKind, value);
Beispiel #4
0
 internal AssignmentExpression(Variable target, AssignmentOperationKind operationKind, Expression value)
 {
     Target        = target;
     OperationKind = operationKind;
     Value         = value;
 }
Beispiel #5
0
 private static Precedence GetOperationPrecedence(AssignmentOperationKind operationKind) => Precedence.Assignment;