Good ways of parsing in C++
<p>I'm writing a Program in C++ that is going to use the same input files as an existing Prolog program already uses.</p>

<p>The files will look like these :</p>

<pre><code>expr1(t,[f,g]).
expr1(q,[]). 
expr1(r,[e]).

expr2(a).
expr2(b).
expr2(e).

expr2(a,r).
expr2(b,d).
expr2(e,z).
</code></pre>

<p>What are some ways of parsing such files?  I've read about the <a href="http://boost-spirit.com/home/" rel="nofollow">Boost Spirit</a>.. anyone got thoughts on this?  Or is a way of doing it using the standard C/C++ libraries?  Ideas would be great.  </p>

<p>Thank you.</p>
