コード例 #1
0
 public InterpreterInstructionBase(int line, int pos, string instruction, Evaluator.IEvaluator evaluator)
 {
     Line        = line;
     Position    = pos;
     Instruction = instruction;
     Evaluator   = evaluator;
 }
コード例 #2
0
        public void AddExpression(int line, int pos, string value)
        {
            Evaluator.IEvaluator evalObject = ExpressionBuilder.BuildExpressionEvaluator(value);

            var instruction = new Interpreter.InterpreterInstructionValue(line, pos, value, evalObject);

            AddInstruction(instruction);

            DebugInstruction("Expression", instruction);
        }
コード例 #3
0
        public static Evaluator.IEvaluator BuildExpressionEvaluator(string expression)
        {
            var props = expression.Split('.');

            Evaluator.IEvaluator evalObject = (props.Last()) switch
            {
                "HasMore" => new Interpreter.Evaluator.HasMoreExpressionEvaluator(),
                "Index" => new Interpreter.Evaluator.IndexExpressionEvaluator(),
                "Ordinal" => new Interpreter.Evaluator.OrdinalExpressionEvaluator(),
                "DateStamp" => new Interpreter.Evaluator.TimestampExpressionEvaluator(),
                _ => new Interpreter.Evaluator.ExpressionEvaluator(),
            };
            return(evalObject);
        }
コード例 #4
0
 public InterpreterInstructionValue(int line, int pos, string instruction, Evaluator.IEvaluator evaluator) : base(line, pos, instruction, evaluator)
 {
 }
コード例 #5
0
 public InterpreterInstructionNoOp(int line, int pos, string instruction, Evaluator.IEvaluator evaluator) : base(line, pos, instruction, evaluator)
 {
     //evaluator = new Evaluator.NoOpEvaluator();
 }