title: Parsing a mathematical expression
body: <p>Given a string containing a mathematical expression, given a set of functions/commands and given a set of assigned variables, are there tools that .NET provides to quickly build a parser?</p>
  
  <p>I would like to build a simple parser that analyzes an expression and breaks it into its simplest components, for example:</p>
  
  <p><code>d*(abs(a-b)+sqrt(c))</code></p>
  
  <p>becomes</p>
  
  <ol>
  <li><code>f = abs(a-b)</code> and <code>g = sqrt(c)</code></li>
  <li><code>e = f + g</code></li>
  <li><code>d*e</code></li>
  </ol>