<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Lightweight PGN parser in F# – Part I</title><link>http://blogs.msdn.com/chrsmith/archive/2009/06/13/lightweight-pgn-parser-in-f.aspx</link><description>If you’ve ever spent a lot of time around the game of Chess you’ve probably seen or interacted with the PGN file format in one way or another. PGN stands for Portable Game Notation and is a concise way to represent Chess games. Using regular expressions</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Lightweight PGN parser in F#</title><link>http://blogs.msdn.com/chrsmith/archive/2009/06/13/lightweight-pgn-parser-in-f.aspx#9747551</link><pubDate>Sun, 14 Jun 2009 06:42:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9747551</guid><dc:creator>Brennan Vincent</dc:creator><description>&lt;p&gt;There is a slight error: 1/2-1/2 should not be interpreted as part of move 44. Rather, it is the game result. 1-0 means a win for White, 0-1 a win for Black, and 1/2-1/2 a draw.&lt;/p&gt;
</description></item><item><title>re: Lightweight PGN parser in F#</title><link>http://blogs.msdn.com/chrsmith/archive/2009/06/13/lightweight-pgn-parser-in-f.aspx#9748820</link><pubDate>Sun, 14 Jun 2009 10:44:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9748820</guid><dc:creator>kfarmer</dc:creator><description>&lt;p&gt;Note that every time it appears, the piece that moved there is either captured, or (in move 37) the king moves. &amp;nbsp;I note also, for example in move 37, the rook moved to a6, with the opposing king at d6.&lt;/p&gt;
&lt;p&gt;Judging from the sequence of moves, the &amp;quot;+&amp;quot; probably stands for check.&lt;/p&gt;
</description></item><item><title>re: Lightweight PGN parser in F#</title><link>http://blogs.msdn.com/chrsmith/archive/2009/06/13/lightweight-pgn-parser-in-f.aspx#9749173</link><pubDate>Sun, 14 Jun 2009 12:01:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9749173</guid><dc:creator>Mekk</dc:creator><description>&lt;p&gt;If only it was so simple...&lt;/p&gt;
&lt;p&gt;Even leaving apart variations or clock info, let me mention promotions:&lt;/p&gt;
&lt;p&gt;37. c8=Q+&lt;/p&gt;
&lt;p&gt;(promotion to queen with check) or&lt;/p&gt;
&lt;p&gt;42. exf8=Q#&lt;/p&gt;
&lt;p&gt;(pawn e7 captureson f8, promotes to queen and mates)&lt;/p&gt;
</description></item><item><title>Lightweight PGN parser in F# - Chris Smith</title><link>http://blogs.msdn.com/chrsmith/archive/2009/06/13/lightweight-pgn-parser-in-f.aspx#9749329</link><pubDate>Sun, 14 Jun 2009 12:56:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9749329</guid><dc:creator>DotNetShoutout</dc:creator><description>&lt;p&gt;Thank you for submitting this cool story - Trackback from DotNetShoutout&lt;/p&gt;
</description></item><item><title>re: Lightweight PGN parser in F# – Part I</title><link>http://blogs.msdn.com/chrsmith/archive/2009/06/13/lightweight-pgn-parser-in-f.aspx#9757943</link><pubDate>Tue, 16 Jun 2009 07:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9757943</guid><dc:creator>Mark</dc:creator><description>&lt;p&gt;off topic..&lt;/p&gt;
&lt;p&gt;With regard to your regex's, I would normally try and write @&amp;quot;\[.*\]&amp;quot; as @&amp;quot;\[[^\]]*\]&amp;quot;. With the idea that it matches anything that isn't a closing bracket. &lt;/p&gt;
</description></item></channel></rss>