public InterpreterInstructionBase(int line, int pos, string instruction, Evaluator.IEvaluator evaluator) { Line = line; Position = pos; Instruction = instruction; Evaluator = evaluator; }
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); }
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); }
public InterpreterInstructionValue(int line, int pos, string instruction, Evaluator.IEvaluator evaluator) : base(line, pos, instruction, evaluator) { }
public InterpreterInstructionNoOp(int line, int pos, string instruction, Evaluator.IEvaluator evaluator) : base(line, pos, instruction, evaluator) { //evaluator = new Evaluator.NoOpEvaluator(); }