<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: What&#8217;s in a parsing library? (1/2)</title>
	<atom:link href="http://www.serpentine.com/blog/2010/03/03/whats-in-a-parsing-library-1/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.serpentine.com/blog/2010/03/03/whats-in-a-parsing-library-1/</link>
	<description>Bryan O&#039;Sullivan&#039;s blog</description>
	<lastBuildDate>Wed, 08 Feb 2012 06:41:38 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Rob MacAulay</title>
		<link>http://www.serpentine.com/blog/2010/03/03/whats-in-a-parsing-library-1/comment-page-1/#comment-258076</link>
		<dc:creator>Rob MacAulay</dc:creator>
		<pubDate>Sun, 11 Apr 2010 10:04:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.serpentine.com/blog/?p=574#comment-258076</guid>
		<description>Just thinking about the speed vs error handling issue.

Most of the Haskell parsing libraries return the failing string if an error occurs. So you could pass this to the slower but more friendly parser to give you more information. 

Obviously, this bloats the code hugely, but that may be acceptable in some circumstances.

You might even extend the technique so that you have a very fast parser that works for 95% of the code, and hand over to a  slower parser for other cases.</description>
		<content:encoded><![CDATA[<p>Just thinking about the speed vs error handling issue.</p>
<p>Most of the Haskell parsing libraries return the failing string if an error occurs. So you could pass this to the slower but more friendly parser to give you more information. </p>
<p>Obviously, this bloats the code hugely, but that may be acceptable in some circumstances.</p>
<p>You might even extend the technique so that you have a very fast parser that works for 95% of the code, and hand over to a  slower parser for other cases.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason Dusek</title>
		<link>http://www.serpentine.com/blog/2010/03/03/whats-in-a-parsing-library-1/comment-page-1/#comment-256055</link>
		<dc:creator>Jason Dusek</dc:creator>
		<pubDate>Wed, 03 Mar 2010 17:14:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.serpentine.com/blog/?p=574#comment-256055</guid>
		<description>Oh, man -- that&#039;s surprising news about Attoparsec. I guess it still saves memory.

I appreciated that Attoparsec had straightforward Applicative and Alternative instances; many parsers have ended up with specialized versions of the operators or whole new shadow classes (I believe the Utrecht parser combinators have their own Applicative class).</description>
		<content:encoded><![CDATA[<p>Oh, man &#8212; that&#8217;s surprising news about Attoparsec. I guess it still saves memory.</p>
<p>I appreciated that Attoparsec had straightforward Applicative and Alternative instances; many parsers have ended up with specialized versions of the operators or whole new shadow classes (I believe the Utrecht parser combinators have their own Applicative class).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: michalt</title>
		<link>http://www.serpentine.com/blog/2010/03/03/whats-in-a-parsing-library-1/comment-page-1/#comment-256029</link>
		<dc:creator>michalt</dc:creator>
		<pubDate>Wed, 03 Mar 2010 10:08:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.serpentine.com/blog/?p=574#comment-256029</guid>
		<description>Sounds great! Can&#039;t wait for the next post. :-)</description>
		<content:encoded><![CDATA[<p>Sounds great! Can&#8217;t wait for the next post. <img src='http://www.serpentine.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>

