public EquationSolver(IOperatorFactory operatorFactory) { if (operatorFactory == null) { throw new ArgumentNullException("operatorFactory"); } this.OperatorFactory = operatorFactory; }
public DataStructureApplication(IPrintMenu menuPrinter, IUserInterface userInterface, IDataStructureFactory <TDataType> dataStructureFactory, IOperatorFactory <TDataType> operatorFactory, IMapDsAndOperations dsAndOperationsMapper) { this.menuPrinter = menuPrinter ?? throw new ArgumentNullException(nameof(menuPrinter)); this.userInterface = userInterface ?? throw new ArgumentNullException(nameof(userInterface)); this.dsAndOperationsMapper = dsAndOperationsMapper ?? throw new ArgumentNullException(nameof(dsAndOperationsMapper)); this.dataStructureFactory = dataStructureFactory ?? throw new ArgumentNullException(nameof(dataStructureFactory)); this.operatorFactory = operatorFactory ?? throw new ArgumentNullException(nameof(operatorFactory)); }
public Stack<string> Generate(IEnumerable<string> tokens, IOperatorFactory operatorFactory, IEnumerable<string> parameterNames) { var operationStack = new Stack<string>(); var RPNStack = new Stack<string>(); var parameterNamesSet = new HashSet<string>(parameterNames); foreach (var token in tokens) { if (token == "(") { operationStack.Push(token); } else if (token == ")") { while (operationStack.Count != 0 && operationStack.Peek() != "(") { RPNStack.Push(operationStack.Pop()); } operationStack.Pop(); if (operationStack.Count != 0 && operatorFactory.HasOperatorForCode(operationStack.Peek())) { RPNStack.Push(operationStack.Pop()); } } else if (IsNumber(token)) { RPNStack.Push(token); } else if (operatorFactory.HasOperatorForCode(token)) { while (operationStack.Count != 0 && operatorFactory.HasOperatorForCode(operationStack.Peek()) && operatorFactory.GetOperatorByCode(token).Priority <= operatorFactory.GetOperatorByCode(operationStack.Peek()).Priority) { RPNStack.Push(operationStack.Pop()); } operationStack.Push(token); } else if (operatorFactory.HasOperatorForCode(token)) { operationStack.Push(token); } else if (parameterNamesSet.Contains(token)) { RPNStack.Push(token); } else { throw new CalculatorException(string.Format("Unrecognized token: {0}", token)); } } while (operationStack.Count != 0) { RPNStack.Push(operationStack.Pop()); } // Reverse the stack RPNStack = new Stack<string>(RPNStack); return RPNStack; }
public MathParser(IMathLexer lexer, IOperatorFactory operatorFactory) { this.lexer = lexer; this.operatorFactory = operatorFactory; }
public OperationConverter(IOperatorFactory operatorFactory) { _operatorFactory = operatorFactory; }
internal ParseTreeVisitor(IOperatorFactory operatorFactory) { _operatorFactory = operatorFactory; }
public StringModifier(IOperationIdentifier operationIdentifier, IOperatorFactory operationFactory) { _operationIdentifier = operationIdentifier; _operationFactory = operationFactory; }
public QueryBuilder(IOperatorFactory operatorFactory ) { _operatorFactory = operatorFactory; }
public Calculator(IOperatorFactory operatorFactory) { _operatorFactory = operatorFactory; }
public OperatorEgine(IOperatorFactory operatorFactory) { _operatorFactory = operatorFactory; }
public OperatorInMemoryCachedRepository(IOperatorFactory operatorFactory) { this.allOperatorsInitialized = false; this.operatorsDictionary = new ConcurrentDictionary <OperatorCodes, Operator>(); this.operatorFactory = operatorFactory; }