Arithmetica.Tokenization.TokenPipeline.Process C# (CSharp) Method

Process() public method

public Process ( TokenStream tokens ) : TokenStream
tokens TokenStream
return TokenStream
        public TokenStream Process(TokenStream tokens)
        {
            foreach (TokenStreamRewriter processor in _processors)
            {
                try
                {
                    // Process the tokens.
                    tokens = processor.Rewrite(tokens);
                }
                catch (MathExpressionException)
                {
                    throw;
                }
                catch (Exception exception)
                {
                    string message = "An error occured while processing tokens. See inner exception for details.";
                    throw new MathExpressionException(message, exception);
                }
            }
            return tokens;
        }

Usage Example

 public void TokenPipeline_MathExpressionException_Thrown_By_Rewriter_Is_Not_Wrapped_In_MathExpressionException()
 {
     var processor1 = new TestActionProcessor(() => { throw new MathExpressionException("An error."); });
     var processor2 = new TestActionProcessor(() => { });
     TokenPipeline pipeline = new TokenPipeline(processor1, processor2);
     var exception = Assert.Throws<MathExpressionException>(() => pipeline.Process(new TokenStream(new Token[] { }, TokenNotation.Infix)));
     Assert.IsNull(exception.InnerException);
     Assert.AreEqual("An error.", exception.Message);
 }
All Usage Examples Of Arithmetica.Tokenization.TokenPipeline::Process