Beispiel #1
0
        public static void CombineWith(Interpreter.Sequence receiver, string line, BinaryOperation Combine)
        {
            string left = "", op = "", right = "";

            if (Interpreter.Sequence.SplitTrinomial(ref left, ref op, ref right, line, Operators.assignops, Patterns.getbinaryop))
            {
                if (Operators.right_to_left.Contains(op))
                {
                    receiver.ParseLeftValueExpression(left, Combine(receiver.Expression(left), receiver.Expression(right)));
                }
                else if (Operators.left_to_right.Contains(op))
                {
                    receiver.ParseLeftValueExpression(right, Combine(receiver.Expression(right), receiver.Expression(left)));
                }
            }
            else
            {
                throw new FormatException("Not a valid assign-statement.");
            }
        }
Beispiel #2
0
 public static void InputLine(Interpreter.Sequence receiver, string line)
 {
     receiver.ParseLeftValueExpression(line, Console.ReadLine());
 }
Beispiel #3
0
 public static void Decrement(Interpreter.Sequence receiver, string line)
 {
     receiver.ParseLeftValueExpression(line, Algorithms.Arithmetic.Difference(receiver.Expression(line), 1L));
 }
Beispiel #4
0
 public static void Clear(Interpreter.Sequence receiver, string line)
 {
     receiver.ParseLeftValueExpression(line, null);
 }