public IExpression Parse(string text) { IState state = new InitialState(); if (_factory!=null) { state.FunctionFactory = _factory; } foreach (char c in text) { state = state.Process(c); } if (state.IsFinalState) return state.CreateExpression(); return null; }