title: S-Expressions parsing
body: <p>I ran into <a href="https://stackoverflow.com/questions/14673902/is-there-a-c-sharp-utility-for-matching-patterns-in-syntactic-parse-trees">this question</a> earlier today:</p>
  
  <blockquote>
    <p><strong><em>Example Input:</em></strong> I ran into Joe and Jill and then we went shopping<br>
    <strong><em>Example Output:</em></strong> [TOP [S [S [NP [PRP I]] [VP [VBD ran] [PP [IN into] [NP [NNP Joe] [CC and] [NNP Jill]]]]] [CC and] [S [ADVP [RB
    then]] [NP [PRP we]] [VP [VBD went] [NP [NN shopping]]]]]]</p>
    
    <p><img src="https://i.stack.imgur.com/EedCb.png" alt="enter image description here"></p>
  </blockquote>
  
  <p>I was about to suggest simply parsing the expected output (as it looks like an s-expression) into an object (in our case a tree) and then using simple LINQ methods to process it. However, to my surprise, I was unable to find a C# s-expression parser. </p>
  
  <p>The only thing I could think of is using Clojure to parse it since it compiles to the clr, I'm not sure it's a good solution though.</p>
  
  <p>By the way, I don't mind the answer to output of type <code>dynamic</code>. Only answers I've found here were for deserializing into a specific schema.</p>
  
  <p>To sum up my question:
  <strong>I need to deserialize s-expressions in C#</strong> (serialization would be nice for future readers of this question)</p>