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;
}
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); }