﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">
  <channel>
    <title>Inwit.nl</title>
    <description>Conscience; inward knowledge; wisdom</description>
    <link>http://www.inwit.nl/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.4.5.0</generator>
    <language>en-GB</language>
    <blogChannel:blogRoll>http://www.inwit.nl/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>My name</dc:creator>
    <dc:title>Inwit.nl</dc:title>
    <item>
      <title>Oslo talk audio recording, screencast &amp; slide deck</title>
      <description>&lt;p&gt;
Last thursday, the last PDC Report Back event was held at Logica Rotterdam. It was the third and final time I held my &amp;#39;Introduction to Oslo&amp;#39; talk. 
&lt;/p&gt;
&lt;p&gt;
As promised, here you can find the audio recording, screencast and the powerpoint slide deck. 
&lt;/p&gt;
&lt;p&gt;
- &lt;a href="http://vanholland.net/upload/screencasts/oslo/Oslo.pptx"&gt;Slide deck&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
- &lt;a href="http://vanholland.net/upload/screencasts/oslo/Oslo_audio.mp3"&gt;Audio recording&lt;/a&gt; (beware: in Dutch!) 
&lt;/p&gt;
&lt;p&gt;
- Screencast, see the flash movie below (beware: it&amp;#39;s also in Dutch!) 
&lt;/p&gt;
&lt;p&gt;
&lt;iframe src="http://vanholland.net/upload/screencasts/oslo/Oslo.htm" width="670" height="630" frameborder="1" style="width: 465px; height: 379px"&gt;&lt;/iframe&gt;
&lt;/p&gt;
&lt;p&gt;
Enjoy! 
&lt;/p&gt;
&lt;p&gt;
And tell me what you think of it. 
&lt;/p&gt;
</description>
      <link>http://www.inwit.nl/post/Oslo-talk-audio-recording-screencast-slide-deck.aspx</link>
      <author>rj.nospam@nospam.vanholland.net (Robert Jan)</author>
      <comments>http://www.inwit.nl/post/Oslo-talk-audio-recording-screencast-slide-deck.aspx#comment</comments>
      <guid>http://www.inwit.nl/post.aspx?id=64a43c8d-f61b-4c49-bfff-5b7cbf33eddd</guid>
      <pubDate>Sat, 14 Mar 2009 15:12:00 +0200</pubDate>
      <category>Oslo</category>
      <category>PDC 2008</category>
      <dc:publisher>Robert Jan</dc:publisher>
      <pingback:server>http://www.inwit.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.inwit.nl/post.aspx?id=64a43c8d-f61b-4c49-bfff-5b7cbf33eddd</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.inwit.nl/trackback.axd?id=64a43c8d-f61b-4c49-bfff-5b7cbf33eddd</trackback:ping>
      <wfw:comment>http://www.inwit.nl/post/Oslo-talk-audio-recording-screencast-slide-deck.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.inwit.nl/syndication.axd?post=64a43c8d-f61b-4c49-bfff-5b7cbf33eddd</wfw:commentRss>
    </item>
    <item>
      <title>Oslo PDC talk</title>
      <description>&lt;p&gt;Yesterday, the first of three PDC feedback evenings was held at Logica, Amstelveen.&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;&lt;img src="http://www.enciclopedia.com.pt/images/LOGICA_ON_TRANSPARENT.gif" width="167" height="89" /&gt;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=image.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://www.inwit.nl/image.axd?picture=image_thumb.png" width="230" height="56" /&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;a href="http://bloggingabout.net/blogs/rutger/" target="_blank"&gt;Rutger de Vries&lt;/a&gt;, &lt;a href="http://bloggingabout.net/blogs/rene/" target="_blank"&gt;Rene Schrieken&lt;/a&gt; and myself gave talks about three different subjects; we had a great time sharing our thoughts and knowledge. First Rutger talked about Visual Studio 2010 as Cameron Skinner did on the PDC. Rene presented the .NET framework 4.0 and it’s new features and I gave a talk about Oslo.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://blogs.msdn.com/blogfiles/mikewalker/WindowsLiveWriter/OsloRoundup_D5A0/image_2.png" /&gt;&lt;/p&gt;  &lt;p&gt;Two more feedback evenings will be held: next week we will be in Eindhoven and in march we will visit Rotterdam. Hope to see you there!&lt;/p&gt;  &lt;p&gt;After the last talk, I’ll share the slide deck here.&lt;/p&gt;</description>
      <link>http://www.inwit.nl/post/Oslo-PDC-talk.aspx</link>
      <author>rj.nospam@nospam.vanholland.net (Robert Jan)</author>
      <comments>http://www.inwit.nl/post/Oslo-PDC-talk.aspx#comment</comments>
      <guid>http://www.inwit.nl/post.aspx?id=d98aa922-bc1a-4dd8-9c76-cabc34512576</guid>
      <pubDate>Thu, 05 Feb 2009 20:39:40 +0200</pubDate>
      <category>Oslo</category>
      <category>PDC 2008</category>
      <dc:publisher>Robert Jan</dc:publisher>
      <pingback:server>http://www.inwit.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.inwit.nl/post.aspx?id=d98aa922-bc1a-4dd8-9c76-cabc34512576</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.inwit.nl/trackback.axd?id=d98aa922-bc1a-4dd8-9c76-cabc34512576</trackback:ping>
      <wfw:comment>http://www.inwit.nl/post/Oslo-PDC-talk.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.inwit.nl/syndication.axd?post=d98aa922-bc1a-4dd8-9c76-cabc34512576</wfw:commentRss>
    </item>
    <item>
      <title>LEAP @ Redmond, Day 2</title>
      <description>&lt;p&gt;&lt;strong&gt;Session 1: Innovations in Identity Management&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Stefan_Brands"&gt;Stefan Brands&lt;/a&gt; (who’s also Dutch) took the stage and shared with us his story. He and some colleagues joined Microsoft due to the acquisition of Credentica (&lt;a title="http://www.credentica.com/" href="http://www.credentica.com/"&gt;http://www.credentica.com/&lt;/a&gt;) last year. Credentica has developed and patented their so called U-Prove technology which is a new way of doing Identity management.    &lt;br /&gt;UProve will become/is a so called “&lt;a href="http://www.google.nl/search?hl=nl&amp;amp;q=minimal+disclosure+token&amp;amp;meta="&gt;minimal disclosure token&lt;/a&gt;”&lt;/p&gt;  &lt;p&gt;&lt;img src="http://aovestdipaperino.com/blogfiles/MicrosoftacquistaUProve_B171/Uprove.gif" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAPRedmondDay2_DEA2/DSC_5301.jpg"&gt;&lt;img title="DSC_5301" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="178" alt="DSC_5301" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAPRedmondDay2_DEA2/DSC_5301_thumb.jpg" width="264" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I was expecting a story about the new Geneva platform, so this was a nice kind of surprise to me. Stefan took us through this UProve technology and explained a bunch of its features. I invite you all to read more about this technology at &lt;a title="http://www.credentica.com/unique_features.html" href="http://www.credentica.com/unique_features.html"&gt;http://www.credentica.com/unique_features.html&lt;/a&gt; and watch the introduction video &lt;a title="http://www.credentica.com/intro_video.html" href="http://www.credentica.com/intro_video.html"&gt;http://www.credentica.com/intro_video.html&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Some of the features Stefan highlighted are:&lt;/p&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;Subset disclosure: Only send the requested claims from the token&lt;/li&gt;      &lt;li&gt;Unlinkability /untraceability&lt;/li&gt;      &lt;li&gt;Derived claims: only disclose a property of a claim (can be computed)&lt;/li&gt;      &lt;li&gt;Issuer driven revocation: ex. a credit card that became invalid. The token will be blacklisted.&lt;/li&gt;      &lt;li&gt;User driven revocation: ex. the token is lost&lt;/li&gt;      &lt;li&gt;Verifier driven revocation: something invisible in the token van indicate that the token is blacklisted&lt;/li&gt;      &lt;li&gt;Brokered disclosure: some sort of query can be send to a broker. the result will not contain the details itself; the result will just indicate that records have been found (with perhaps the record count)&lt;/li&gt;      &lt;li&gt;User signed transcript: a relying party can send a subset to another relying party as an audit transcript&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;It’s really interesting where this is going and I expect this to be integrated in all sorts of Microsoft product stacks like for example WCF.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Session 2: Navigating the New World of Business&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://future-of-work.spaces.live.com/"&gt;Daniel Rasmus&lt;/a&gt; elaborated a bit more on the well known subject : New World of Work / Business.    &lt;br /&gt;His story was about the different generations passing on (like the babyboomers, generationX and right now the Millennials) and how these generations all have their own characteristics and requirements related to their profession.     &lt;br /&gt;Daniel writes about this subject on his blog, and you can also find more on this web site: &lt;a title="http://www.listeningtothefuture.com/" href="http://www.listeningtothefuture.com/"&gt;http://www.listeningtothefuture.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.amazon.com/Listening-Future-Why-Everybodys-Business/dp/0470413441"&gt;&lt;img src="http://www.listeningtothefuture.com/Book.png" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAPRedmondDay2_DEA2/DSC_5302.jpg"&gt;&lt;img title="DSC_5302" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="165" alt="DSC_5302" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAPRedmondDay2_DEA2/DSC_5302_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;He and &lt;a href="http://generationblend.com/"&gt;Rob Salkowitz&lt;/a&gt; wrote a &lt;a href="http://www.amazon.com/Listening-Future-Why-Everybodys-Business/dp/0470413441"&gt;book&lt;/a&gt; called “Listening to the Future” in which they speak about methods of scenario planning to look at issues facing businesses over the next 10-12 years. The work force coming up will be of a whole different kind that most of the companies are currently ready for. So anticipating on this is a major thing!&lt;/p&gt;  &lt;p&gt;Interesting stuff, I recommend reading this whitepaper he wrote about the New World of Work:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://download.microsoft.com/download/0/1/2/012e8e6e-ff65-4b04-857c-1e2c991f57f4/NewWorldOfWork.pdf" href="http://download.microsoft.com/download/0/1/2/012e8e6e-ff65-4b04-857c-1e2c991f57f4/NewWorldOfWork.pdf"&gt;http://download.microsoft.com/download/0/1/2/012e8e6e-ff65-4b04-857c-1e2c991f57f4/NewWorldOfWork.pdf&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Session 3: Building composite information worker solutions using the Microsoft Office System&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/pstubbs/"&gt;Paul Stubbs&lt;/a&gt; talked about OBA’s:&amp;#160; Office Business Applications. He showed different kind of architectures to build these and also showed a tool called the OBA composer. This is a tool which allows a user to mashup his OBA sharepoint application, and then let the tool generate this app within sharepoint. Nice kind of way to abstract all sorts of sharepoint configuration details.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Session 4: Security&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/steriley/"&gt;Steve Riley&lt;/a&gt; came along, and did a whole different kind of session. Without a powerpoint he did some sort of whiteboard session where everyone could ask questions and discuss all sorts of issues.    &lt;br /&gt;I really enjoyed this session. It is great to see someone speaking on a subject he knows a LOT about; and he did it in such a humorous manner that I think everybody was on the tip of his chair ( :) that’s a Dutch saying that means you’re listening very closely to the speaker, and he has grabbed your full attention).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAPRedmondDay2_DEA2/DSC_5303.jpg"&gt;&lt;img title="DSC_5303" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="165" alt="DSC_5303" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAPRedmondDay2_DEA2/DSC_5303_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;So we a great laugh at this last session of the day. Afterwards, we went directly to the busses to visit the &lt;a href="http://www.newcastlegolf.com/"&gt;Newcastle Golf Club&lt;/a&gt; for a dinner and a spectacular view. &lt;/p&gt;  &lt;p&gt;&lt;img height="180" src="http://z.about.com/d/golf/1/0/q/H/newcastle_coal_creek1.JPG" width="241" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAPRedmondDay2_DEA2/DSC_5305.jpg"&gt;&lt;img title="DSC_5305" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="165" alt="DSC_5305" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAPRedmondDay2_DEA2/DSC_5305_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;That latter wasn’t possible due to the fog that hung around the hill.. Pity, however the dinner and table talk were fine!&lt;/p&gt;</description>
      <link>http://www.inwit.nl/post/LEAP-Redmond-Day-2.aspx</link>
      <author>rj.nospam@nospam.vanholland.net (Robert Jan)</author>
      <comments>http://www.inwit.nl/post/LEAP-Redmond-Day-2.aspx#comment</comments>
      <guid>http://www.inwit.nl/post.aspx?id=0728d4c6-f5ac-47f2-b25b-9ab48159b616</guid>
      <pubDate>Fri, 16 Jan 2009 15:50:12 +0200</pubDate>
      <category>LEAP 2009</category>
      <category>Architecture</category>
      <dc:publisher>Robert Jan</dc:publisher>
      <pingback:server>http://www.inwit.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.inwit.nl/post.aspx?id=0728d4c6-f5ac-47f2-b25b-9ab48159b616</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.inwit.nl/trackback.axd?id=0728d4c6-f5ac-47f2-b25b-9ab48159b616</trackback:ping>
      <wfw:comment>http://www.inwit.nl/post/LEAP-Redmond-Day-2.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.inwit.nl/syndication.axd?post=0728d4c6-f5ac-47f2-b25b-9ab48159b616</wfw:commentRss>
    </item>
    <item>
      <title>LEAP @ Redmond, Day 1</title>
      <description>&lt;p&gt;&lt;strong&gt;Session 1:&amp;#160; Software + Services a.k.a Windows Azure&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The first session of the day was all about Windows Azure. Yousef Khalidi took the stage and gave a nice talk about this.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAPRedmondDay1_BEA2/DSC_5292.jpg"&gt;&lt;img title="DSC_5292" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="165" alt="DSC_5292" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAPRedmondDay1_BEA2/DSC_5292_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;img src="http://media.arstechnica.com/news.media/azurePlatform_web.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;As I&lt;a href="http://inwit.nl/category/Azure.aspx"&gt; visited the PDC 2008 last year, and I also attended the Cloud Computing seminar done by David Chappel&lt;/a&gt;, for me there was not that much new stuff being told. &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;He told what Azure as a Cloud Computing platform delivers:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Automated Service Management&lt;/li&gt;    &lt;li&gt;High availability and scalability&lt;/li&gt;    &lt;li&gt;Rich developer experience (uses the common platform: .NET, VS2008)&lt;/li&gt;    &lt;li&gt;Model driven service lifecycle management (manages services, not just servers)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Some characteristics of a cloud computing platform (for more on this, read my &lt;a href="http://inwit.nl/post/Seminar-David-Chappell-Cloud-Platforms-and-the-Azure-Services-Platform.aspx"&gt;blog post and its links about the David Chappell seminar&lt;/a&gt;):&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Scale out and not Scale up&lt;/li&gt;    &lt;li&gt;Add and remove capacity on demand&lt;/li&gt;    &lt;li&gt;Pay for what you use, as you go (based on e.x. network utilization, storage capacity or VM hours)&lt;/li&gt;    &lt;li&gt;Automation is the key to reducing costs&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Then, Yousef shared some ideas on the future of azure:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Support for unmanaged code&lt;/li&gt;    &lt;li&gt;Also run legacy apps&lt;/li&gt;    &lt;li&gt;support for more application types&lt;/li&gt;    &lt;li&gt;more interfaces to utilize (for example for monitoring, tracking and event handling)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Session 2: Role of Architecture in the current Economic Climate&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Now here was a session that I didn't quite expect, in a positive sense. Neil Leslie had us put our feet back on the ground talking about how to leverage the current economical situation to its best.    &lt;br /&gt;( I found his PPT right here on a public web site: &lt;a title="http://architect-center.com/groups/saf/media/p/30.aspx" href="http://architect-center.com/groups/saf/media/p/30.aspx"&gt;http://architect-center.com/groups/saf/media/p/30.aspx&lt;/a&gt;)    &lt;br /&gt;First he talks about the Microsoft internal IT characteristics:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAPRedmondDay1_BEA2/DSC_5296.jpg"&gt;&lt;img title="DSC_5296" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="199" alt="DSC_5296" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAPRedmondDay1_BEA2/DSC_5296_thumb.jpg" width="294" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Message here was, Microsoft &lt;u&gt;does&lt;/u&gt; know enterprise IT and how to best centralize this. With these kind of numbers, I guess you have to :)     &lt;br /&gt;Leslie then took a lot of time asking and discussing what he called the ‘Ultimate Question’: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;How do you add business value?     &lt;br /&gt;The answer Leslie have have here is:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;User Experience&lt;/li&gt;      &lt;li&gt;BI&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#333333"&gt;When talking to, or selling to customers make these are your unique selling points. Focus on these because right now it seems these are the most triggering aspects a customer might relate to and decide on.&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;And how do you drive out costs?     &lt;br /&gt;The answer Leslie gave here is:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;SOA and Business Process&lt;/li&gt;      &lt;li&gt;Development&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#333333"&gt;SOA and Business Process has everything to do with centralizing key (software) functions, reuse (not just of small software parts, but also of complete subsystems)&amp;#160; and optimizing business processes around this.&amp;#160; To reduce costs, you could also take a look at fast prototyping methodologies like Agile (Scrum, XP etc…)&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;To distinguish yourself, Leslie told, you have to move now! On what area? Watch this slide:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAPRedmondDay1_BEA2/DSC_5297_1.jpg"&gt;&lt;img title="DSC_5297" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="165" alt="DSC_5297" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAPRedmondDay1_BEA2/DSC_5297_thumb_1.jpg" width="244" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Session 3:&amp;#160; Application Architecture Guidance&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Unlike the Agenda stated, not &lt;a href="http://blogs.msdn.com/donsmith/"&gt;Don Smith&lt;/a&gt; took care of this session, but &lt;a href="http://www.ademiller.com/blogs/tech"&gt;Ade Miller&lt;/a&gt; took the stage.    &lt;br /&gt;He guided through the Application Architecture Guide &lt;a href="http://www.codeplex.com/AppArchGuide"&gt;you can find on CodePlex&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I’ve been using this guide for a while now, and I must say I think it’s a great collection of information you’d normally see spread out in different segments within a project. It’s not that Microsoft is telling anything really new in this guide, to me the added value is the fact that it’s now all put into one great book for reference purposes.&lt;/p&gt;  &lt;p&gt;Ade told about the different Architectural Types, Architectural frame and Architectural Styles. He also explained the different steps you can take when designing your architecture, and the quality attributes you should look at the guarantee some sort of stable, high quality deliverable.&lt;/p&gt;  &lt;p&gt;If you are now raising your eyebrows, I’d really invite you to take a look at the book.&lt;/p&gt;  &lt;p&gt;By the way, I really belief this kind of info should go hand in hand with a security approach. So when defining an architecture also take a look on the &lt;a href="http://msdn.microsoft.com/en-us/security/default.aspx"&gt;MSDN Security Developer Center&lt;/a&gt;, and especially on &lt;a href="http://msdn.microsoft.com/en-us/security/aa570411.aspx"&gt;Threat Modeling&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Session 4: Office Futures&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Gideon Bibliowicz took his turn to talk about the future of the Office products.   &lt;br /&gt;Due to an NDA we had to sign, I cant say anything about this, but as usual it will get bigger, better, more beautiful and perhaps also easier to integrate :)&lt;/p&gt;  &lt;p&gt;Well, at least I guessed Gideon’s favorite soccer team right, ‘Holland’ won me a USB key :)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;After the bus ride back to the hotel, we went to the &lt;a href="http://www.bowlluckystrike.com/"&gt;Lucky Strike Lanes &amp;amp; Lounge&lt;/a&gt; across the street for some fun and beers.&lt;/p&gt;</description>
      <link>http://www.inwit.nl/post/LEAP-Redmond-Day-1.aspx</link>
      <author>rj.nospam@nospam.vanholland.net (Robert Jan)</author>
      <comments>http://www.inwit.nl/post/LEAP-Redmond-Day-1.aspx#comment</comments>
      <guid>http://www.inwit.nl/post.aspx?id=5c610c95-bd92-4276-b84e-bbdcea50ee47</guid>
      <pubDate>Wed, 14 Jan 2009 13:33:41 +0200</pubDate>
      <category>LEAP 2009</category>
      <category>Azure</category>
      <category>Architecture</category>
      <dc:publisher>Robert Jan</dc:publisher>
      <pingback:server>http://www.inwit.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.inwit.nl/post.aspx?id=5c610c95-bd92-4276-b84e-bbdcea50ee47</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.inwit.nl/trackback.axd?id=5c610c95-bd92-4276-b84e-bbdcea50ee47</trackback:ping>
      <wfw:comment>http://www.inwit.nl/post/LEAP-Redmond-Day-1.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.inwit.nl/syndication.axd?post=5c610c95-bd92-4276-b84e-bbdcea50ee47</wfw:commentRss>
    </item>
    <item>
      <title>LEAP @ Redmond, Amsterdam to Seattle</title>
      <description>&lt;p&gt;
So here we are! LEAP 2009 @ Redmond has started!
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jschreuder/LEAP2009_5F00_2.jpg" alt="" width="600" height="150" /&gt;
&lt;/p&gt;
&lt;p&gt;
After a steady flight we arrived perfectly on schedule in Seattle WA.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAPRedmondAmsterdamtoSeattle_B09B/DSC_5280.jpg"&gt;&lt;img style="display: inline; border: 0px" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAPRedmondAmsterdamtoSeattle_B09B/DSC_5280_thumb.jpg" border="0" alt="DSC_5280" title="DSC_5280" width="244" height="165" /&gt;&lt;/a&gt; &lt;br /&gt;
Luckily, it didn&amp;#39;t take long to get passed through customs and soon we were on a bus ride to the Hyatt Regency Hotel. &lt;br /&gt;
&lt;img src="http://images.hotel-rates.com/hotels/SEA_HY01-exter-1.jpg" alt="" width="245" height="247" /&gt; &lt;br /&gt;
I just checked in and I have pretty much the same room (and the same nice view!) as two years ago. &lt;br /&gt;
After checking in and a shower, we took a walk to the mall (&lt;a href="http://www.bellevuesquare.com/" title="http://www.bellevuesquare.com/"&gt;http://www.bellevuesquare.com/&lt;/a&gt;) on the other side of the street. I had some ideas of presents to buy, but finding those items seems to be a bit hard&amp;hellip; so many shops&amp;hellip;. I hope I have more luck on Friday, we&amp;rsquo;ll have a day off then and will visit downtown Seattle.
&lt;/p&gt;
&lt;p&gt;
Expect more LEAP follow ups this week!
&lt;/p&gt;
</description>
      <link>http://www.inwit.nl/post/LEAP-Redmond-Amsterdam-to-Seattle.aspx</link>
      <author>rj.nospam@nospam.vanholland.net (Robert Jan)</author>
      <comments>http://www.inwit.nl/post/LEAP-Redmond-Amsterdam-to-Seattle.aspx#comment</comments>
      <guid>http://www.inwit.nl/post.aspx?id=ded6c884-81c4-406d-a645-a13e08f39f12</guid>
      <pubDate>Tue, 13 Jan 2009 22:33:00 +0200</pubDate>
      <category>LEAP 2009</category>
      <dc:publisher>Robert Jan</dc:publisher>
      <pingback:server>http://www.inwit.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.inwit.nl/post.aspx?id=ded6c884-81c4-406d-a645-a13e08f39f12</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.inwit.nl/trackback.axd?id=ded6c884-81c4-406d-a645-a13e08f39f12</trackback:ping>
      <wfw:comment>http://www.inwit.nl/post/LEAP-Redmond-Amsterdam-to-Seattle.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.inwit.nl/syndication.axd?post=ded6c884-81c4-406d-a645-a13e08f39f12</wfw:commentRss>
    </item>
    <item>
      <title>Seminar - David Chappell : Cloud Platforms and the Azure Services Platform</title>
      <description>&lt;p&gt;Last Friday, &lt;a href="http://www.davidchappell.com/"&gt;David Chappell&lt;/a&gt; spoke at the Microsoft Innovation Center in Barneveld (NL) about Cloud Platforms in general and a lot about the Azure services platform in detail.    &lt;br /&gt;    &lt;br /&gt;When talking about Cloud Computing David identifies three categories:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;SAAS (Software as a Service) ex. SalesForce.com&amp;#160; == App in the cloud&lt;/li&gt;    &lt;li&gt;Attached Services == Combine on-premises applications with cloud services&lt;/li&gt;    &lt;li&gt;Cloud Platforms&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;To me, the most important part of the talk was hearing his lists of advantages and disadvantages of SAAS and Cloud Platforms in general.&lt;/p&gt;  &lt;p&gt;So what could be the pro’s and con’s of cloud computing / SAAS?   &lt;br /&gt;Pro’s:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Less financial risk     &lt;br /&gt;- No large up-front investman      &lt;br /&gt;- Try before buy&lt;/li&gt;    &lt;li&gt;Lower costs (initially, at least)     &lt;br /&gt;- No license buy (pay per usage)      &lt;br /&gt;- Shift fixed buying expenses to variable operating expenses&lt;/li&gt;    &lt;li&gt;Faster deployment&lt;/li&gt;    &lt;li&gt;Higher Availability&lt;/li&gt;    &lt;li&gt;Easier upgrades&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Con’s:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Trust (which is a major thing; do you trust the service provider? will they protect your data?)&lt;/li&gt;    &lt;li&gt;Regulatory and compliance issues&lt;/li&gt;    &lt;li&gt;Customization (tailoring)&lt;/li&gt;    &lt;li&gt;Integration (with on-premise applications)&lt;/li&gt;    &lt;li&gt;Identity (federation)&lt;/li&gt;    &lt;li&gt;Management (monitoring)&lt;/li&gt;    &lt;li&gt;Support&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;He then further talked about the Azure services platform itself; perhaps I’ll write some more posts on this subject later on. I first like to have investigated it a bit more.   &lt;br /&gt;Overall, I really liked his talk. You can hear why he’s a frequently asked speaker; great job!&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;PS. David wrote a short introduction about Cloud Platforms; &lt;a href="http://www.davidchappell.com/CloudPlatforms--Chappell.pdf"&gt;go read it here&lt;/a&gt;.&lt;/p&gt;</description>
      <link>http://www.inwit.nl/post/Seminar-David-Chappell-Cloud-Platforms-and-the-Azure-Services-Platform.aspx</link>
      <author>rj.nospam@nospam.vanholland.net (Robert Jan)</author>
      <comments>http://www.inwit.nl/post/Seminar-David-Chappell-Cloud-Platforms-and-the-Azure-Services-Platform.aspx#comment</comments>
      <guid>http://www.inwit.nl/post.aspx?id=2b62fcf1-d08f-4653-a342-0b83571f1e15</guid>
      <pubDate>Wed, 26 Nov 2008 21:06:57 +0200</pubDate>
      <category>Azure</category>
      <category>Cloud Computing</category>
      <dc:publisher>Robert Jan</dc:publisher>
      <pingback:server>http://www.inwit.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.inwit.nl/post.aspx?id=2b62fcf1-d08f-4653-a342-0b83571f1e15</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.inwit.nl/trackback.axd?id=2b62fcf1-d08f-4653-a342-0b83571f1e15</trackback:ping>
      <wfw:comment>http://www.inwit.nl/post/Seminar-David-Chappell-Cloud-Platforms-and-the-Azure-Services-Platform.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.inwit.nl/syndication.axd?post=2b62fcf1-d08f-4653-a342-0b83571f1e15</wfw:commentRss>
    </item>
    <item>
      <title>LEAP 2009 : MC3 &amp; MC4</title>
      <description>&lt;p&gt;
To find out what LEAP is &lt;a href="http://www.inwit.nl/post/LEAP-2009-MC1-amp3b-MC2.aspx"&gt;read my first blog post about LEAP 2009&lt;/a&gt; or check out the &lt;a href="http://www.microsoft.com/netherlands/architecture/leap.aspx"&gt;LEAP web site&lt;/a&gt; (Dutch!) 
&lt;/p&gt;
&lt;p&gt;
LEAP is now also rolled out to other European countries; for my Belgian readers keep an eye &lt;a href="http://www.microsoft.com/belux/msdn/nl/leap/default.mspx"&gt;on this web page&lt;/a&gt;; apparently it&amp;rsquo;s now fully booked but I&amp;rsquo;m sure there will be another course next year! 
&lt;/p&gt;
&lt;p&gt;
Master classes 3 &amp;amp; 4 were presented by Sasa Radosevic. I&amp;rsquo;ll write brief outlines below. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;MC3 was titled : Core Infrastructure Architecture.&lt;/strong&gt; 
&lt;/p&gt;
&lt;table border="0" cellspacing="0" cellpadding="2" width="500"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td width="250" valign="top"&gt;Due to everlasting (and expanding) pressure on IT&amp;nbsp; &lt;/td&gt;
			&lt;td width="250" valign="top"&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAP2009MC3MC4_9111/image_2.png"&gt;&lt;img style="display: inline; border: 0px" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAP2009MC3MC4_9111/image_thumb.png" border="0" alt="image" title="image" width="244" height="182" /&gt;&lt;/a&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td width="250" valign="top"&gt;And industry trends&lt;/td&gt;
			&lt;td width="250" valign="top"&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAP2009MC3MC4_9111/image_4.png"&gt;&lt;img style="display: inline; border: 0px" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAP2009MC3MC4_9111/image_thumb_1.png" border="0" alt="image" title="image" width="244" height="186" /&gt;&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
A better approach is needed. One that: 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Looks holistically across the infrastructure&lt;/li&gt;
	&lt;li&gt;Addresses underlying structure and complexity&lt;/li&gt;
	&lt;li&gt;Creates an integrated, uniform environment&lt;/li&gt;
	&lt;li&gt;Adopts IT solutions that support proven best practices&lt;/li&gt;
	&lt;li&gt;Prioritizes and sequences IT projects in a structured, systematic manner&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
That&amp;rsquo;s where Microsoft&amp;rsquo;s vision on this subject comes into place: DynamicIT which has some &lt;br /&gt;
&lt;u&gt;Characteristics&lt;/u&gt; &lt;br /&gt;
- Unified &amp;amp; Virtualized &lt;br /&gt;
- Process-Led &amp;amp; Model-driven &lt;br /&gt;
- Service enabled &lt;br /&gt;
- User focused 
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;and Goals &lt;br /&gt;
&lt;/u&gt;- Manage Complexity, Achieve Agility &lt;br /&gt;
- Protect Information, Control Access &lt;br /&gt;
- Advance the Business with IT solutions &lt;br /&gt;
- Amplify the impact of your users 
&lt;/p&gt;
&lt;p&gt;
Every organization can assess it&amp;rsquo;s IT infrastructure to identify where it&amp;rsquo;s at, and where it want to be, using the Infrastructure Optimization Maturity Model developed by Microsoft: 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAP2009MC3MC4_9111/image_6.png"&gt;&lt;img style="display: inline; border: 0px" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAP2009MC3MC4_9111/image_thumb_2.png" border="0" alt="image" title="image" width="244" height="167" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Sasa further told us where to get Architectural and design guidance, and the Microsoft products to manage virtualized infrastructures like the System Center suite. Also, an in-depth explanation of virtualization on the Microsoft platform was shown and told. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;MC4 was also done by Sasa and was titled: Advancing Security&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
This session covered Microsoft and Security, risks and threats, core infrastructure security and identity and access control. First, we were shown a nice overview of threat evolution: 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAP2009MC3MC4_9111/image_8.png"&gt;&lt;img style="display: inline; border: 0px" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAP2009MC3MC4_9111/image_thumb_3.png" border="0" alt="image" title="image" width="244" height="179" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Often security is just seen as a technology aspect, but the process and people aspects are just as important: 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAP2009MC3MC4_9111/image_10.png"&gt;&lt;img style="display: inline; border: 0px" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAP2009MC3MC4_9111/image_thumb_4.png" border="0" alt="image" title="image" width="244" height="183" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
And of course Microsoft has a optimization model for security on these three aspects: 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAP2009MC3MC4_9111/image_12.png"&gt;&lt;img style="display: inline; border: 0px" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAP2009MC3MC4_9111/image_thumb_5.png" border="0" alt="image" title="image" width="244" height="186" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Within the security development lifecycle creating the Threat Model is an important deliverable in the design phase: 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAP2009MC3MC4_9111/image_14.png"&gt;&lt;img style="display: inline; border: 0px" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAP2009MC3MC4_9111/image_thumb_6.png" border="0" alt="image" title="image" width="244" height="124" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Threat modeling is all about identifying potential threats within certain categories (STRIDE model): 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAP2009MC3MC4_9111/image_16.png"&gt;&lt;img style="display: inline; border: 0px" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/LEAP2009MC3MC4_9111/image_thumb_7.png" border="0" alt="image" title="image" width="244" height="186" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The rest of the talk was about the products Microsoft provides to implement security at all levels: 
&lt;/p&gt;
&lt;p&gt;
- Edge protection with ISA or IAG &lt;br /&gt;
- Network transport security &lt;br /&gt;
- Rights Management Services &lt;br /&gt;
- Bitlocker drive protection &lt;br /&gt;
- Network Access Protection (NAP) &lt;br /&gt;
- Identity and Access management &lt;br /&gt;
- Authorization management &lt;br /&gt;
- Messaging security 
&lt;/p&gt;
&lt;p&gt;
Next week, the last session within the Netherlands will take place and it&amp;rsquo;s about the Knowledge Worker and Microsoft&amp;rsquo;s vision on this subject: The New World of Work. &lt;br /&gt;
After that, we&amp;rsquo;ll fly off to Redmond,&amp;nbsp; the second week of January to listen to what some people working within the lion&amp;rsquo;s den have to say :) 
&lt;/p&gt;
</description>
      <link>http://www.inwit.nl/post/LEAP-2009-MC3-MC4.aspx</link>
      <author>rj.nospam@nospam.vanholland.net (Robert Jan)</author>
      <comments>http://www.inwit.nl/post/LEAP-2009-MC3-MC4.aspx#comment</comments>
      <guid>http://www.inwit.nl/post.aspx?id=9cb37114-ba7e-452d-aade-9199359220d6</guid>
      <pubDate>Tue, 25 Nov 2008 22:31:00 +0200</pubDate>
      <category>LEAP 2009</category>
      <dc:publisher>Robert Jan</dc:publisher>
      <pingback:server>http://www.inwit.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.inwit.nl/post.aspx?id=9cb37114-ba7e-452d-aade-9199359220d6</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.inwit.nl/trackback.axd?id=9cb37114-ba7e-452d-aade-9199359220d6</trackback:ping>
      <wfw:comment>http://www.inwit.nl/post/LEAP-2009-MC3-MC4.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.inwit.nl/syndication.axd?post=9cb37114-ba7e-452d-aade-9199359220d6</wfw:commentRss>
    </item>
    <item>
      <title>Oslo – In Memory / Dynamic MGrammar compilation using the MGrammarCompiler</title>
      <description>&lt;p&gt;At the last day of the PDC, Chris Anderson and Giovanni Della-Libera showed us how to build textual DSL’s with the Oslo modeling language. &lt;a href="http://inwit.nl/post/PDC-ndash3b-Final-Day-ndash3b-Building-Textual-DSLrsquo3bs-with-the-ldquo3bOslordquo3b-Modelling-Language.aspx"&gt;I wrote a blog post about this session&lt;/a&gt; and in that post you can find this image:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/OsloInMemoryDynamicMGrammarcompilation_85AF/image_2.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="254" alt="image" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/OsloInMemoryDynamicMGrammarcompilation_85AF/image_thumb.png" width="386" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Normally you would use the MG.exe compiler or the MG Build Task to compile your languages. But as the slide above indicates, the MGrammar team provided us with an in-memory version of the MG build task. So let’s try this out!&lt;/p&gt;  &lt;p&gt;For this exercise I reuse the language and instance data I created in my blog post: &lt;a href="http://inwit.nl/post/Oslo-My-First-Language-in-MGrammar.aspx"&gt;My First Language in MGrammar&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Module&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;First, I created the Module class. This class represents the&amp;#160; MGrammar textual DSL. It also contains the name of the parser you want to create (more on that later on in this post) and the result bytes of the compiled DSL:&lt;/p&gt;  &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4"&gt;   &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;     &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Module&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; MGrammar { get; set; }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; ParserName { get; set; }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;byte&lt;/span&gt;[] Bytes { get; set; }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt; }&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DynamicMGrammarCompiler&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The dynamic compiler class I created can be used in two scenarios:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;You compile the module, cache it in your host application and reuse this module when parsing data through your DSL. Compiling a module is an expensive operation; it burns quite some CPU cycles, so reusing it seems like a good idea. &lt;/li&gt;

  &lt;li&gt;You compile the module and parse your data through your DSL every single call. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The above scenarios result in three methods: CompileModule, ParseData and CompileModuleAndParseData:&lt;/p&gt;

&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4"&gt;
  &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; DynamicMGrammarCompiler&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// Compile the module, and store the graph in the byte[], so the &lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// client application can cache this compiled image&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;param name=&amp;quot;module&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Module CompileModule(Module module) &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;     {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;         MGrammarCompiler compiler = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; MGrammarCompiler(); &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;         ErrorReporter reporter = ErrorReporter.Standard;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;         TextReader reader = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; StringReader(module.MGrammar);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;         FileStream fs = &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;         {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;             SourceItem item = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SourceItem(module.ParserName, reader);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;             item.ContentType = GContentType.Mg;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;             SourceItem[] items = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SourceItem[] { item };&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;             compiler.SourceItems = items;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;             compiler.Target = Target.Mgx;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  24:&lt;/span&gt;             compiler.TypeCheckActions = &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  25:&lt;/span&gt;             compiler.OutFile = Path.GetTempFileName();&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  26:&lt;/span&gt;             compiler.Execute(reporter);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  27:&lt;/span&gt;             &lt;span style="color: #008000"&gt;//read bytes &lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  28:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; filepath = Path.Combine(Path.GetDirectoryName(compiler.OutFile), Path.GetFileNameWithoutExtension(compiler.OutFile) + &lt;span style="color: #006080"&gt;&amp;quot;.mgx&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  29:&lt;/span&gt;             fs = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; FileStream(filepath, FileMode.Open, FileAccess.Read);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  30:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;byte&lt;/span&gt;[] bytes = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #0000ff"&gt;byte&lt;/span&gt;[fs.Length];&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  31:&lt;/span&gt;             fs.Read(bytes, (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;)0, (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;)fs.Length);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  32:&lt;/span&gt;             fs.Close();&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  33:&lt;/span&gt;             module.Bytes = bytes;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  34:&lt;/span&gt;         }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  35:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;finally&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  36:&lt;/span&gt;         {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  37:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;!=fs)&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  38:&lt;/span&gt;             {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  39:&lt;/span&gt;                 fs.Close();&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  40:&lt;/span&gt;             }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  41:&lt;/span&gt;             reader.Close();&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  42:&lt;/span&gt;         }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  43:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; module; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  44:&lt;/span&gt;     }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  45:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  46:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  47:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// Parse the instancedata through the compiled image within the module&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  48:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  49:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;param name=&amp;quot;module&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  50:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;param name=&amp;quot;instanceData&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  51:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  52:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;object&lt;/span&gt; ParseData(Module module, &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; instanceData) &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  53:&lt;/span&gt;     {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  54:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  55:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;object&lt;/span&gt; result = &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  56:&lt;/span&gt;         MemoryStream ms = &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  57:&lt;/span&gt;         StringReader sr = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; StringReader(instanceData);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  58:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  59:&lt;/span&gt;         {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  60:&lt;/span&gt;             ms = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; MemoryStream(module.Bytes);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  61:&lt;/span&gt;             DynamicParser parser = MGrammarCompiler.LoadParserFromMgx(ms, module.ParserName);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  62:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;null&lt;/span&gt; == parser)&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  63:&lt;/span&gt;             {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  64:&lt;/span&gt;                 &lt;span style="color: #0000ff"&gt;throw&lt;/span&gt; &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; NullReferenceException(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #006080"&gt;&amp;quot;Language with name '{0}' not found in MGrammar image!&amp;quot;&lt;/span&gt;, module.ParserName));&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  65:&lt;/span&gt;             }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  66:&lt;/span&gt;             &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  67:&lt;/span&gt;             result = parser.ParseObject(sr, ErrorReporter.Standard);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  68:&lt;/span&gt;         }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  69:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;finally&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  70:&lt;/span&gt;         {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  71:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;null&lt;/span&gt; != ms)&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  72:&lt;/span&gt;             {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  73:&lt;/span&gt;                 ms.Close();&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  74:&lt;/span&gt;             }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  75:&lt;/span&gt;             sr.Close();&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  76:&lt;/span&gt;         }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  77:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; result;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  78:&lt;/span&gt;     }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  79:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  80:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  81:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// Both Compile and Parse.&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  82:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  83:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;param name=&amp;quot;module&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  84:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;param name=&amp;quot;instanceData&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  85:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  86:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;object&lt;/span&gt; CompileModuleAndParseData(Module module, &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; instanceData)&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  87:&lt;/span&gt;     {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  88:&lt;/span&gt;         module = CompileModule(module);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  89:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; ParseData(module, instanceData);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  90:&lt;/span&gt;     }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  91:&lt;/span&gt; }&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;u&gt;CompileModule&lt;/u&gt; creates a MGrammarCompiler instance and loads theMGrammar we want to compile in a TextReader. Then, I create a SourceItem instance which will tell the MGrammarCompiler what type of source it can expect and provides the source (textual DSL) itself.

  &lt;br /&gt;Then, I tell the compiler that the target of the compilation should be a MGX file. I also provide a temporary file name to write the result to, and then call Execute!

  &lt;br /&gt;The last step is opening the created file and reading its bytes and returning them within the module instance.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;ParseData&lt;/u&gt; receives a module and some input instance data. I first read the instance data and create a stream of the module bytes. Then I create a DynamicParser using the stream and the provided ParserName. Important to know here is that the parser name should be the module name and the language name concatenated with a dot. As I’m using my RssLanguage from the inwit module, my parser name should be “inwit.RssLanguage”.

  &lt;br /&gt;If a correct parser is created, we use it parse our instance data and create a graph. I just return this graph to the caller.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;CompileModuleAndParseData&lt;/u&gt; just combines the above two steps in one call.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Application&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As a test application I created a console App:&lt;/p&gt;

&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4"&gt;
  &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Program&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Main(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;[] args)&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;     {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;         Console.WriteLine(&lt;span style="color: #006080"&gt;&amp;quot;&amp;gt;&amp;gt;Initializing...&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; filePathMGrammar =       &lt;span style="color: #006080"&gt;@&amp;quot;C:\Users\Robert Jan\Desktop\My Documents\Oslo\MyOslo\RssLanguage.mg&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; filePathInstanceData =   &lt;span style="color: #006080"&gt;@&amp;quot;C:\Users\Robert Jan\Desktop\My Documents\Oslo\MyOslo\FeedsInput.m&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;         &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; mGrammar = File.ReadAllText(filePathMGrammar);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; instanceData = File.ReadAllText(filePathInstanceData);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;         inwit.Module module = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; inwit.Module();&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;         module.MGrammar = mGrammar;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;         module.ParserName = &lt;span style="color: #006080"&gt;&amp;quot;inwit.RssLanguage&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;         inwit.DynamicMGrammarCompiler compiler = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; inwit.DynamicMGrammarCompiler();&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;         &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;         &lt;span style="color: #008000"&gt;//first compile and cache module&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;         Console.WriteLine(&lt;span style="color: #006080"&gt;&amp;quot;&amp;gt;&amp;gt;Step 1: compiling module&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;         module = compiler.CompileModule(module);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;         &lt;span style="color: #008000"&gt;//second reuse module, and just parse instancedata&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;         Console.WriteLine(&lt;span style="color: #006080"&gt;&amp;quot;&amp;gt;&amp;gt;Step 2a: parsing instance data&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  24:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;object&lt;/span&gt; graph = compiler.ParseData(module, instanceData);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  25:&lt;/span&gt;         Console.WriteLine(&lt;span style="color: #006080"&gt;&amp;quot;&amp;gt;&amp;gt;Step 2b: Writing result:&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  26:&lt;/span&gt;         inwit.Helper.WalkMGraphTree(graph);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  27:&lt;/span&gt;         &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  28:&lt;/span&gt;         &lt;span style="color: #008000"&gt;//third, do all in one call&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  29:&lt;/span&gt;         Console.WriteLine(&lt;span style="color: #006080"&gt;&amp;quot;&amp;gt;&amp;gt;Step 3a: compiling module and parsing data in one call...&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  30:&lt;/span&gt;         graph = compiler.CompileModuleAndParseData(module, instanceData);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  31:&lt;/span&gt;         Console.WriteLine(&lt;span style="color: #006080"&gt;&amp;quot;&amp;gt;&amp;gt;Step 3b: Writing result:&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  32:&lt;/span&gt;         inwit.Helper.WalkMGraphTree(graph);&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  33:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  34:&lt;/span&gt;         Console.ReadLine();&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  35:&lt;/span&gt;     }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  36:&lt;/span&gt; }&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt; I’m using the Helper.WalkMGraphTree method from &lt;a href="http://inwit.nl/post/Oslo-My-First-Language-in-MGrammar.aspx"&gt;my previous post&lt;/a&gt; again to output the result graph.&lt;/p&gt;

&lt;p&gt;The result of the console app looks like:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/OsloInMemoryDynamicMGrammarcompilation_85AF/image_4.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="330" alt="image" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/OsloInMemoryDynamicMGrammarcompilation_85AF/image_thumb_1.png" width="393" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://www.inwit.nl/post/Oslo-e28093-In-Memory-Dynamic-MGrammar-compilation-using-the-MGrammarCompiler.aspx</link>
      <author>rj.nospam@nospam.vanholland.net (Robert Jan)</author>
      <comments>http://www.inwit.nl/post/Oslo-e28093-In-Memory-Dynamic-MGrammar-compilation-using-the-MGrammarCompiler.aspx#comment</comments>
      <guid>http://www.inwit.nl/post.aspx?id=ef81a668-b4a6-4da2-928a-865f8280d0b1</guid>
      <pubDate>Fri, 07 Nov 2008 11:28:36 +0200</pubDate>
      <category>Oslo</category>
      <category>MGrammar</category>
      <dc:publisher>Robert Jan</dc:publisher>
      <pingback:server>http://www.inwit.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.inwit.nl/post.aspx?id=ef81a668-b4a6-4da2-928a-865f8280d0b1</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.inwit.nl/trackback.axd?id=ef81a668-b4a6-4da2-928a-865f8280d0b1</trackback:ping>
      <wfw:comment>http://www.inwit.nl/post/Oslo-e28093-In-Memory-Dynamic-MGrammar-compilation-using-the-MGrammarCompiler.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.inwit.nl/syndication.axd?post=ef81a668-b4a6-4da2-928a-865f8280d0b1</wfw:commentRss>
    </item>
    <item>
      <title>Oslo - My First Language in MGrammar</title>
      <description>&lt;p&gt;
&lt;strong&gt;Update: Something went wrong with the code snippets; should be shown correctly now!&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.inwit.nl/post/Oslo-e28093-Enabling-MGrammarMode-in-Intellipad.aspx"&gt;Now we have MGrammar mode correctly running in Intellipad&lt;/a&gt;, let&amp;rsquo;s try out some stuff. 
&lt;/p&gt;
&lt;p&gt;
Let&amp;rsquo;s create a language that understands textual representation of the title, location, URL and email address of an RSS Feed. I also want the language to skip whitespace and comments, and the email address should be validated. 
&lt;/p&gt;
&lt;p&gt;
So as sample instance data I wrote this: 
&lt;/p&gt;
&lt;div class="csharpcode-wrapper"&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;
&lt;span class="lnum"&gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;div style="font-size: 8pt; margin: 20px 0px 10px; overflow: auto; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border: gray 1px solid; padding: 4px"&gt;
&lt;div style="font-size: 8pt; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; Title: inwit.nl
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; Url: http:&lt;span style="color: #008000"&gt;//inwit.nl&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; RssFeedUrl: http:&lt;span style="color: #008000"&gt;//feeds.feedburner.com/inwitnl&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; Email: rj@vanholland.net
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   6:&lt;/span&gt; &lt;span style="color: #008000"&gt;//this is comment&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   7:&lt;/span&gt; &lt;span style="color: #008000"&gt;/*&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   8:&lt;/span&gt; &lt;span style="color: #008000"&gt;this is also comment&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   9:&lt;/span&gt; &lt;span style="color: #008000"&gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  10:&lt;/span&gt; &lt;span style="color: #008000"&gt;*/&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  12:&lt;/span&gt; Title: IntellipadBlog
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  13:&lt;/span&gt; Url: http:&lt;span style="color: #008000"&gt;//blogs.msdn.com/intellipad&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  14:&lt;/span&gt; RssFeedUrl: http:&lt;span style="color: #008000"&gt;//blogs.msdn.com/intellipad/rss.xml&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  15:&lt;/span&gt; Email: oslo@microsoft.com
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
As you can see, just two instances of a Feed type with some comments and whitespacing in there. &lt;br /&gt;
Now, let&amp;rsquo;s write a language that swallows this data. What I in fact did was create three languages: 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;A common language with some stuff you&amp;rsquo;d want to use more often; perhaps the Email Language should be moved here also. &lt;/li&gt;
	&lt;li&gt;The language that understands an Email Address &lt;/li&gt;
	&lt;li&gt;The actual RSS language &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;The Common Language &lt;br /&gt;
&lt;/strong&gt;This language should cover the part of understanding white spacing and comments; after having looked at the demo done at the PDC and after having looked around in the &amp;ldquo;C:\Program Files\Microsoft Oslo SDK 1.0\Samples\MGrammar\Languages&amp;rdquo; directory of&amp;nbsp; your SDK installation I came up with this: 
&lt;/p&gt;
&lt;div style="font-size: 8pt; margin: 20px 0px 10px; overflow: auto; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border: gray 1px solid; padding: 4px"&gt;
&lt;div style="font-size: 8pt; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; language InwitCommon
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;     token Skippable = Whitespace | Comment;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;     
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;     token Comment = CommentToken;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;     token CommentToken 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;         = CommentDelimited
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;         | CommentLine;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;     token CommentDelimited = &lt;span style="color: #006080"&gt;&amp;quot;/*&amp;quot;&lt;/span&gt; CommentDelimitedContent* &lt;span style="color: #006080"&gt;&amp;quot;*/&amp;quot;&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;     token CommentDelimitedContent = 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;         ^(&lt;span style="color: #006080"&gt;&amp;#39;*&amp;#39;&lt;/span&gt;)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;         | &lt;span style="color: #006080"&gt;&amp;#39;*&amp;#39;&lt;/span&gt;  ^(&lt;span style="color: #006080"&gt;&amp;#39;/&amp;#39;&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;     token CommentLine = &lt;span style="color: #006080"&gt;&amp;quot;//&amp;quot;&lt;/span&gt; CommentLineContent*;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;             token CommentLineContent = ^(
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;              &lt;span style="color: #006080"&gt;&amp;#39;\u000A&amp;#39;&lt;/span&gt; &lt;span style="color: #008000"&gt;// New Line&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;           |  &lt;span style="color: #006080"&gt;&amp;#39;\u000D&amp;#39;&lt;/span&gt; &lt;span style="color: #008000"&gt;// Carriage Return&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;           |  &lt;span style="color: #006080"&gt;&amp;#39;\u0085&amp;#39;&lt;/span&gt; &lt;span style="color: #008000"&gt;// Next Line&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;           |  &lt;span style="color: #006080"&gt;&amp;#39;\u2028&amp;#39;&lt;/span&gt; &lt;span style="color: #008000"&gt;// Line Separator&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;           |  &lt;span style="color: #006080"&gt;&amp;#39;\u2029&amp;#39;&lt;/span&gt;); &lt;span style="color: #008000"&gt;// Paragraph Separator&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;           
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;           
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;           
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  24:&lt;/span&gt;    token Whitespace = WhitespaceToken+;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  25:&lt;/span&gt;    token WhitespaceToken = WhitespaceCharacter+;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  26:&lt;/span&gt;             token WhitespaceCharacter 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  27:&lt;/span&gt;         = &lt;span style="color: #006080"&gt;&amp;#39;\u0009&amp;#39;&lt;/span&gt;   &lt;span style="color: #008000"&gt;// Horizontal Tab&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  28:&lt;/span&gt;         | &lt;span style="color: #006080"&gt;&amp;#39;\u000B&amp;#39;&lt;/span&gt; &lt;span style="color: #008000"&gt;// Vertical Tab&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  29:&lt;/span&gt;         | &lt;span style="color: #006080"&gt;&amp;#39;\u000C&amp;#39;&lt;/span&gt; &lt;span style="color: #008000"&gt;// Form Feed&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  30:&lt;/span&gt;         | &lt;span style="color: #006080"&gt;&amp;#39;\u0020&amp;#39;&lt;/span&gt; &lt;span style="color: #008000"&gt;// Space&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  31:&lt;/span&gt;         | NewLineCharacter;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  32:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  33:&lt;/span&gt;    token NewLineCharacter 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  34:&lt;/span&gt;         = &lt;span style="color: #006080"&gt;&amp;#39;\u000A&amp;#39;&lt;/span&gt; &lt;span style="color: #008000"&gt;// New Line&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  35:&lt;/span&gt;         | &lt;span style="color: #006080"&gt;&amp;#39;\u000D&amp;#39;&lt;/span&gt; &lt;span style="color: #008000"&gt;// Carriage Return&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  36:&lt;/span&gt;         | &lt;span style="color: #006080"&gt;&amp;#39;\u0085&amp;#39;&lt;/span&gt; &lt;span style="color: #008000"&gt;// Next Line&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  37:&lt;/span&gt;         | &lt;span style="color: #006080"&gt;&amp;#39;\u2028&amp;#39;&lt;/span&gt; &lt;span style="color: #008000"&gt;// Line Separator&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  38:&lt;/span&gt;         | &lt;span style="color: #006080"&gt;&amp;#39;\u2029&amp;#39;&lt;/span&gt;; &lt;span style="color: #008000"&gt;// Paragraph Separator&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  39:&lt;/span&gt; }
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
Now, in your language you can use the Skippable token from this language to set as an interleave; this will let your language skip whitespacing and comments. 
&lt;p&gt;
&lt;strong&gt;The Email Language &lt;br /&gt;
&lt;/strong&gt;I wanted to have some sort of Email address validation within my language. So I came up with this: 
&lt;/p&gt;
&lt;div style="font-size: 8pt; margin: 20px 0px 10px; overflow: auto; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border: gray 1px solid; padding: 4px"&gt;
&lt;div style="font-size: 8pt; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; language EmailAddressLanguage
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   2:&lt;/span&gt;     {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;         token EmailAddress = 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;         localpart
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;         at
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;         domainpart;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;            
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;         token abzABZ = (&lt;span style="color: #006080"&gt;&amp;#39;A&amp;#39;&lt;/span&gt;..&lt;span style="color: #006080"&gt;&amp;#39;Z&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;a&amp;#39;&lt;/span&gt;..&lt;span style="color: #006080"&gt;&amp;#39;z&amp;#39;&lt;/span&gt;)+;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;         token digits = (&lt;span style="color: #006080"&gt;&amp;#39;0&amp;#39;&lt;/span&gt;..&lt;span style="color: #006080"&gt;&amp;#39;9&amp;#39;&lt;/span&gt;)+;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;         token otherChars = (&lt;span style="color: #006080"&gt;&amp;#39;!&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;#&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;$&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;%&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;&amp;amp;&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;quot;&amp;#39;&amp;quot;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;*&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;+&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;-&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;/&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;=&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;?&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;^&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;_&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;`&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;{&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;|&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;}&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;~&amp;#39;&lt;/span&gt;)+; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;         token allButDot = (abzABZ | digits | otherChars)+;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;         token all = (allButDot | dot)+;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;         token dot = (&lt;span style="color: #006080"&gt;&amp;#39;.&amp;#39;&lt;/span&gt;)#1;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;         token localpart = 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;         (allButDot)+ | 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;         allButDot dot all* allButDot+;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;         token at = &lt;span style="color: #006080"&gt;&amp;quot;@&amp;quot;&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;         token domainpart = 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;         (allButDot)+ dot all* allButDot+;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;     }
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
It&amp;rsquo;s far from being perfect! It validates email addresses but in some cases doesn&amp;rsquo;t work correctly yet: &lt;br /&gt;
You can have an email address like &lt;a href="mailto:&amp;ldquo;bla..bla@hotmail..com"&gt;&amp;ldquo;bla..bla@hotmail..com&lt;/a&gt;&amp;rdquo; and it will validate. I haven&amp;rsquo;t looked much deeper in it yet, because this was just a small test but &lt;u&gt;if someone feels like improving this part, please do so and post a comment with your solution!&lt;/u&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The RSS Language &lt;br /&gt;
&lt;/strong&gt;Then, I wrote the RSS language itself, which looks like this: 
&lt;/p&gt;
&lt;div style="font-size: 8pt; margin: 20px 0px 10px; overflow: auto; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border: gray 1px solid; padding: 4px"&gt;
&lt;div style="font-size: 8pt; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; language RssLanguage
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   2:&lt;/span&gt;     {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;         syntax Main = f:Feeds =&amp;gt; f;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;         syntax Feeds = Feed*;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;         syntax Feed = 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;         &lt;span style="color: #006080"&gt;&amp;quot;Title&amp;quot;&lt;/span&gt; &lt;span style="color: #006080"&gt;&amp;quot;:&amp;quot;&lt;/span&gt; t:Title 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;         &lt;span style="color: #006080"&gt;&amp;quot;Url&amp;quot;&lt;/span&gt; &lt;span style="color: #006080"&gt;&amp;quot;:&amp;quot;&lt;/span&gt; u:Url
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;         &lt;span style="color: #006080"&gt;&amp;quot;RssFeedUrl&amp;quot;&lt;/span&gt; &lt;span style="color: #006080"&gt;&amp;quot;:&amp;quot;&lt;/span&gt; r:RssFeedUrl
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;         &lt;span style="color: #006080"&gt;&amp;quot;Email&amp;quot;&lt;/span&gt; &lt;span style="color: #006080"&gt;&amp;quot;:&amp;quot;&lt;/span&gt; e:EmailAddressLanguage.EmailAddress
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;         =&amp;gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;         Feed{
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;             Title{t},
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;             Url{u},
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;             RSS{r},
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;             Email{e}
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;             };
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;         @{Classification[&lt;span style="color: #006080"&gt;&amp;quot;Keyword&amp;quot;&lt;/span&gt;]} token Title = (&lt;span style="color: #006080"&gt;&amp;#39;A&amp;#39;&lt;/span&gt;..&lt;span style="color: #006080"&gt;&amp;#39;Z&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;a&amp;#39;&lt;/span&gt;..&lt;span style="color: #006080"&gt;&amp;#39;z&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;.&amp;#39;&lt;/span&gt;)+;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;         token Url = &lt;span style="color: #006080"&gt;&amp;quot;http://&amp;quot;&lt;/span&gt; (&lt;span style="color: #006080"&gt;&amp;#39;A&amp;#39;&lt;/span&gt;..&lt;span style="color: #006080"&gt;&amp;#39;Z&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;a&amp;#39;&lt;/span&gt;..&lt;span style="color: #006080"&gt;&amp;#39;z&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;.&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;/&amp;#39;&lt;/span&gt;)+;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  24:&lt;/span&gt;         token RssFeedUrl = Url;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  25:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  26:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  27:&lt;/span&gt;         interleave WhiteSpacing = &lt;span style="color: #006080"&gt;&amp;quot; &amp;quot;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;quot;\r&amp;quot;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;quot;\n&amp;quot;&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  28:&lt;/span&gt;         interleave Skippable = InwitCommon.Skippable;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  29:&lt;/span&gt;     }
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
It defined that the Main is a sequence called &amp;lsquo;Feeds&amp;rsquo; which contains items of the type Feed. An input Feed will consist of a Title, Url, RssFeedUrl and Email and will be shaped to a Feed with a Title, Url, RSS and Email element. &lt;br /&gt;
You can see that I use the EmailAddressLanguage and the InwitCommon language within this language. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Full Listing &lt;br /&gt;
&lt;/strong&gt;To simplify, here is the full listing in one module: 
&lt;/p&gt;
&lt;div style="font-size: 8pt; margin: 20px 0px 10px; overflow: auto; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border: gray 1px solid; padding: 4px"&gt;
&lt;div style="font-size: 8pt; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; module inwit
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;     language RssLanguage
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;     {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;         syntax Main = f:Feeds =&amp;gt; f;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;         syntax Feeds = Feed*;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;         syntax Feed = 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;         &lt;span style="color: #006080"&gt;&amp;quot;Title&amp;quot;&lt;/span&gt; &lt;span style="color: #006080"&gt;&amp;quot;:&amp;quot;&lt;/span&gt; t:Title 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;         &lt;span style="color: #006080"&gt;&amp;quot;Url&amp;quot;&lt;/span&gt; &lt;span style="color: #006080"&gt;&amp;quot;:&amp;quot;&lt;/span&gt; u:Url
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;         &lt;span style="color: #006080"&gt;&amp;quot;RssFeedUrl&amp;quot;&lt;/span&gt; &lt;span style="color: #006080"&gt;&amp;quot;:&amp;quot;&lt;/span&gt; r:RssFeedUrl
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;         &lt;span style="color: #006080"&gt;&amp;quot;Email&amp;quot;&lt;/span&gt; &lt;span style="color: #006080"&gt;&amp;quot;:&amp;quot;&lt;/span&gt; e:EmailAddressLanguage.EmailAddress
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;         =&amp;gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;         Feed{
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;             Title{t},
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;             Url{u},
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;             RSS{r},
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;             Email{e}
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;             };
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;         @{Classification[&lt;span style="color: #006080"&gt;&amp;quot;Keyword&amp;quot;&lt;/span&gt;]} token Title = (&lt;span style="color: #006080"&gt;&amp;#39;A&amp;#39;&lt;/span&gt;..&lt;span style="color: #006080"&gt;&amp;#39;Z&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;a&amp;#39;&lt;/span&gt;..&lt;span style="color: #006080"&gt;&amp;#39;z&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;.&amp;#39;&lt;/span&gt;)+;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  24:&lt;/span&gt;         token Url = &lt;span style="color: #006080"&gt;&amp;quot;http://&amp;quot;&lt;/span&gt; (&lt;span style="color: #006080"&gt;&amp;#39;A&amp;#39;&lt;/span&gt;..&lt;span style="color: #006080"&gt;&amp;#39;Z&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;a&amp;#39;&lt;/span&gt;..&lt;span style="color: #006080"&gt;&amp;#39;z&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;.&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;/&amp;#39;&lt;/span&gt;)+;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  25:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  26:&lt;/span&gt;         token RssFeedUrl = Url;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  27:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  28:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  29:&lt;/span&gt;         interleave WhiteSpacing = &lt;span style="color: #006080"&gt;&amp;quot; &amp;quot;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;quot;\r&amp;quot;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;quot;\n&amp;quot;&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  30:&lt;/span&gt;         interleave Skippable = InwitCommon.Skippable;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  31:&lt;/span&gt;     }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  32:&lt;/span&gt;     
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  33:&lt;/span&gt;     language EmailAddressLanguage
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  34:&lt;/span&gt;     {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  35:&lt;/span&gt;         token EmailAddress = 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  36:&lt;/span&gt;         localpart
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  37:&lt;/span&gt;         at
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  38:&lt;/span&gt;         domainpart;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  39:&lt;/span&gt;            
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  40:&lt;/span&gt;         token abzABZ = (&lt;span style="color: #006080"&gt;&amp;#39;A&amp;#39;&lt;/span&gt;..&lt;span style="color: #006080"&gt;&amp;#39;Z&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;a&amp;#39;&lt;/span&gt;..&lt;span style="color: #006080"&gt;&amp;#39;z&amp;#39;&lt;/span&gt;)+;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  41:&lt;/span&gt;         token digits = (&lt;span style="color: #006080"&gt;&amp;#39;0&amp;#39;&lt;/span&gt;..&lt;span style="color: #006080"&gt;&amp;#39;9&amp;#39;&lt;/span&gt;)+;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  42:&lt;/span&gt;         token otherChars = (&lt;span style="color: #006080"&gt;&amp;#39;!&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;#&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;$&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;%&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;&amp;amp;&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;quot;&amp;#39;&amp;quot;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;*&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;+&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;-&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;/&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;=&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;?&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;^&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;_&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;`&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;{&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;|&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;}&amp;#39;&lt;/span&gt; | &lt;span style="color: #006080"&gt;&amp;#39;~&amp;#39;&lt;/span&gt;)+; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  43:&lt;/span&gt;         token allButDot = (abzABZ | digits | otherChars)+;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  44:&lt;/span&gt;         token all = (allButDot | dot)+;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  45:&lt;/span&gt;         token dot = (&lt;span style="color: #006080"&gt;&amp;#39;.&amp;#39;&lt;/span&gt;)#1;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  46:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  47:&lt;/span&gt;         token localpart = 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  48:&lt;/span&gt;         (allButDot)+ | 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  49:&lt;/span&gt;         allButDot dot all* allButDot+;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  50:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  51:&lt;/span&gt;         token at = &lt;span style="color: #006080"&gt;&amp;quot;@&amp;quot;&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  52:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  53:&lt;/span&gt;         token domainpart = 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  54:&lt;/span&gt;         (allButDot)+ dot all* allButDot+;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  55:&lt;/span&gt;     }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  56:&lt;/span&gt;     
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  57:&lt;/span&gt;     language InwitCommon
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  58:&lt;/span&gt;     {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  59:&lt;/span&gt;     
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  60:&lt;/span&gt;         token Skippable = Whitespace | Comment;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  61:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  62:&lt;/span&gt;         token Comment = CommentToken;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  63:&lt;/span&gt;         token CommentToken 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  64:&lt;/span&gt;             = CommentDelimited
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  65:&lt;/span&gt;             | CommentLine;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  66:&lt;/span&gt;         token CommentDelimited = &lt;span style="color: #006080"&gt;&amp;quot;/*&amp;quot;&lt;/span&gt; CommentDelimitedContent* &lt;span style="color: #006080"&gt;&amp;quot;*/&amp;quot;&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  67:&lt;/span&gt;         token CommentDelimitedContent = 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  68:&lt;/span&gt;             ^(&lt;span style="color: #006080"&gt;&amp;#39;*&amp;#39;&lt;/span&gt;)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  69:&lt;/span&gt;             | &lt;span style="color: #006080"&gt;&amp;#39;*&amp;#39;&lt;/span&gt;  ^(&lt;span style="color: #006080"&gt;&amp;#39;/&amp;#39;&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  70:&lt;/span&gt;         token CommentLine = &lt;span style="color: #006080"&gt;&amp;quot;//&amp;quot;&lt;/span&gt; CommentLineContent*;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  71:&lt;/span&gt;                 token CommentLineContent = ^(
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  72:&lt;/span&gt;                  &lt;span style="color: #006080"&gt;&amp;#39;\u000A&amp;#39;&lt;/span&gt; &lt;span style="color: #008000"&gt;// New Line&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  73:&lt;/span&gt;               |  &lt;span style="color: #006080"&gt;&amp;#39;\u000D&amp;#39;&lt;/span&gt; &lt;span style="color: #008000"&gt;// Carriage Return&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  74:&lt;/span&gt;               |  &lt;span style="color: #006080"&gt;&amp;#39;\u0085&amp;#39;&lt;/span&gt; &lt;span style="color: #008000"&gt;// Next Line&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  75:&lt;/span&gt;               |  &lt;span style="color: #006080"&gt;&amp;#39;\u2028&amp;#39;&lt;/span&gt; &lt;span style="color: #008000"&gt;// Line Separator&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  76:&lt;/span&gt;               |  &lt;span style="color: #006080"&gt;&amp;#39;\u2029&amp;#39;&lt;/span&gt;); &lt;span style="color: #008000"&gt;// Paragraph Separator&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  77:&lt;/span&gt;               
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  78:&lt;/span&gt;               
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  79:&lt;/span&gt;               
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  80:&lt;/span&gt;        token Whitespace = WhitespaceToken+;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  81:&lt;/span&gt;        token WhitespaceToken = WhitespaceCharacter+;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  82:&lt;/span&gt;                 token WhitespaceCharacter 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  83:&lt;/span&gt;             = &lt;span style="color: #006080"&gt;&amp;#39;\u0009&amp;#39;&lt;/span&gt;   &lt;span style="color: #008000"&gt;// Horizontal Tab&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  84:&lt;/span&gt;             | &lt;span style="color: #006080"&gt;&amp;#39;\u000B&amp;#39;&lt;/span&gt; &lt;span style="color: #008000"&gt;// Vertical Tab&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  85:&lt;/span&gt;             | &lt;span style="color: #006080"&gt;&amp;#39;\u000C&amp;#39;&lt;/span&gt; &lt;span style="color: #008000"&gt;// Form Feed&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  86:&lt;/span&gt;             | &lt;span style="color: #006080"&gt;&amp;#39;\u0020&amp;#39;&lt;/span&gt; &lt;span style="color: #008000"&gt;// Space&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  87:&lt;/span&gt;             | NewLineCharacter;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  88:&lt;/span&gt;             
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  89:&lt;/span&gt;        token NewLineCharacter 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  90:&lt;/span&gt;             = &lt;span style="color: #006080"&gt;&amp;#39;\u000A&amp;#39;&lt;/span&gt; &lt;span style="color: #008000"&gt;// New Line&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  91:&lt;/span&gt;             | &lt;span style="color: #006080"&gt;&amp;#39;\u000D&amp;#39;&lt;/span&gt; &lt;span style="color: #008000"&gt;// Carriage Return&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  92:&lt;/span&gt;             | &lt;span style="color: #006080"&gt;&amp;#39;\u0085&amp;#39;&lt;/span&gt; &lt;span style="color: #008000"&gt;// Next Line&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  93:&lt;/span&gt;             | &lt;span style="color: #006080"&gt;&amp;#39;\u2028&amp;#39;&lt;/span&gt; &lt;span style="color: #008000"&gt;// Line Separator&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  94:&lt;/span&gt;             | &lt;span style="color: #006080"&gt;&amp;#39;\u2029&amp;#39;&lt;/span&gt;; &lt;span style="color: #008000"&gt;// Paragraph Separator&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  95:&lt;/span&gt;     }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  96:&lt;/span&gt; }
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
And this is what it looks like when writing it within Intellipad: 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/OsloMyFirstMGrammar_729A/lang.jpg"&gt;&lt;img style="display: inline; border-width: 0px" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/OsloMyFirstMGrammar_729A/lang_thumb.jpg" border="0" alt="lang" title="lang" width="492" height="382" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Language Compilation&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Next step, is to compile the module &amp;lsquo;RSSLanguage.mg&amp;rsquo; I just created; we use the mg.exe compiler provided by the Oslo SDK to do this: 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/OsloMyFirstMGrammar_729A/mg.jpg"&gt;&lt;img style="display: inline; border-width: 0px" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/OsloMyFirstMGrammar_729A/mg_thumb.jpg" border="0" alt="mg" title="mg" width="296" height="151" /&gt;&lt;/a&gt; &lt;br /&gt;
We get an .MGX file out of this. When renamed to a file with a .ZIP extension, I tried to open this file but it&amp;rsquo;s password protected. &lt;u&gt;Anyone knows the secret password?&lt;/u&gt; :) 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Run-time Language utilization&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Last but not least I&amp;rsquo;d like to use my language within the .NET runtime. Luckily, the Oslo SDK provides us some base classes to do this. I created a new C# Console Application to test test things out. &lt;br /&gt;
First add references to the System.Dataflow and Microsoft.M.Grammar assemblies which can be found within the Bin directory of the Oslo SDK.: 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/OsloMyFirstMGrammar_729A/image_2.png"&gt;&lt;img style="display: inline; border-width: 0px" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/OsloMyFirstMGrammar_729A/image_thumb.png" border="0" alt="image" title="image" width="244" height="201" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Then, I wrote this code: 
&lt;/p&gt;
&lt;div style="font-size: 8pt; margin: 20px 0px 10px; overflow: auto; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border: gray 1px solid; padding: 4px"&gt;
&lt;div style="font-size: 8pt; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Linq;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Text;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Dataflow; &lt;span style="color: #008000"&gt;// DynamicParser, GraphBuilder&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   6:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; Microsoft.M.Grammar; &lt;span style="color: #008000"&gt;// MGrammarCompiler&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   8:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt; ConsoleApplication
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   9:&lt;/span&gt; {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Program
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;     {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Main(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;[] args)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;         {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;try&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;             {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;                 &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; imageFileName = &lt;span style="color: #006080"&gt;@&amp;quot;C:\Users\Robert Jan\Desktop\My Documents\Oslo\MyOslo\ConsoleApplication\RssLanguage.mgx&amp;quot;&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;                 &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; inputFileName = &lt;span style="color: #006080"&gt;@&amp;quot;C:\Users\Robert Jan\Desktop\My Documents\Oslo\MyOslo\ConsoleApplication\FeedsInput.m&amp;quot;&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;                 &lt;span style="color: #008000"&gt;//inwit == module name&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;                 &lt;span style="color: #008000"&gt;//RssLanguage == language name&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;                 &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; parserName = &lt;span style="color: #006080"&gt;&amp;quot;inwit.RssLanguage&amp;quot;&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;                 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;                 DynamicParser parser = MGrammarCompiler.LoadParserFromMgx(imageFileName, parserName);
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  24:&lt;/span&gt;                 &lt;span style="color: #0000ff"&gt;object&lt;/span&gt; output = parser.ParseObject(inputFileName, ErrorReporter.Standard);
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  25:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  26:&lt;/span&gt;                 Helper.WalkMGraphTree(output);
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  27:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  28:&lt;/span&gt;             }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  29:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (Exception e)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  30:&lt;/span&gt;             {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  31:&lt;/span&gt;                 Console.WriteLine(e.Message);
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  32:&lt;/span&gt;             }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  33:&lt;/span&gt;             Console.ReadLine();
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  34:&lt;/span&gt;         }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  35:&lt;/span&gt;     }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  36:&lt;/span&gt; }
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
First, I Create a DynamicParser instance, and provide it with the compiled language image file (the .MGX file) and with the parserName. The parser name is the name of the module and the name of the language concatenated. 
&lt;/p&gt;
&lt;p&gt;
I then parse the input file using the ParseObject method, and we will get the result. 
&lt;/p&gt;
&lt;p&gt;
I wrote a nice Helper function that walks the result tree, and outputs its contents to the Console. &lt;u&gt;Feel free to use it yourself&lt;/u&gt; (after giving me a comment here of course :)). 
&lt;/p&gt;
&lt;div style="font-size: 8pt; margin: 20px 0px 10px; overflow: auto; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border: gray 1px solid; padding: 4px"&gt;
&lt;div style="font-size: 8pt; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Linq;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Text;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Dataflow;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   7:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt; ConsoleApplication
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   8:&lt;/span&gt; {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Helper
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;     {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; WalkMGraphTree(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; rootNode)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;         {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;             IGraphBuilder builder = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; GraphBuilder();
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;             WalkNode(rootNode, builder);
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;         }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; WalkNode(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; node, IGraphBuilder builder)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;         {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (node.GetType().Name == &lt;span style="color: #006080"&gt;&amp;quot;SequenceNode&amp;quot;&lt;/span&gt;)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;             {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;                 &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sequenceElement &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; builder.GetSequenceElements(node))
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;                 {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  24:&lt;/span&gt;                     
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  25:&lt;/span&gt;                     WalkNode(sequenceElement, builder);
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  26:&lt;/span&gt;                 }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  27:&lt;/span&gt;                 Console.WriteLine();
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  28:&lt;/span&gt;             }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  29:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (node.GetType().Name == &lt;span style="color: #006080"&gt;&amp;quot;SimpleNode&amp;quot;&lt;/span&gt;)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  30:&lt;/span&gt;             {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  31:&lt;/span&gt;                 Identifier id = builder.GetLabel(node) &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; Identifier;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  32:&lt;/span&gt;                 WriteLine(id.Text,&lt;span style="color: #0000ff"&gt;false&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  33:&lt;/span&gt;                 &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; successorElement &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; builder.GetSuccessors(node))
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  34:&lt;/span&gt;                 {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  35:&lt;/span&gt;                     WalkNode(successorElement, builder);
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  36:&lt;/span&gt;                 }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  37:&lt;/span&gt;                 Console.WriteLine();
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  38:&lt;/span&gt;             }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  39:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  40:&lt;/span&gt;             {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  41:&lt;/span&gt;                 WriteLine(Convert.ToString(node),&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  42:&lt;/span&gt;             }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  43:&lt;/span&gt;         }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  44:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  45:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; WriteLine(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; line, &lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; newline)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  46:&lt;/span&gt;         {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  47:&lt;/span&gt;             Console.Write(line + &lt;span style="color: #006080"&gt;&amp;quot; &amp;quot;&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  48:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (newline)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  49:&lt;/span&gt;             {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  50:&lt;/span&gt;                 Console.Write(Environment.NewLine);
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  51:&lt;/span&gt;             }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  52:&lt;/span&gt;         }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  53:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  54:&lt;/span&gt;     }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  55:&lt;/span&gt; }
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Now when I run the Console App, the output looks like this: 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/OsloMyFirstMGrammar_729A/image_4.png"&gt;&lt;img style="display: inline; border-width: 0px" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/OsloMyFirstMGrammar_729A/image_thumb_1.png" border="0" alt="image" title="image" width="350" height="177" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Summary&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Here&amp;rsquo;s the summary of the steps I took, and the end result accomplished: 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;First, we created our languages; we separated some functionalities in separate languages and used these within&amp;nbsp; the RssLanguage &lt;/li&gt;
	&lt;li&gt;We created some input data and tested the languages combined with the input data within Intellipad &lt;/li&gt;
	&lt;li&gt;We compiled the languages with MG.exe into an .MGX image file. &lt;/li&gt;
	&lt;li&gt;We created a .NET applications which loads the image file and parses the input data through the language. &lt;/li&gt;
	&lt;li&gt;We created a Helper method which walks the result graph tree, and shows us the result within our Console. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Valuable links &lt;br /&gt;
&lt;/strong&gt;&lt;a href="http://soa-thoughts.blogspot.com/2008/11/views-and-opinions-about-oslo.html"&gt;Steef-Jan gave some pretty good links&lt;/a&gt; last Monday, I&amp;rsquo;d like to highlight one of those and give you two others: 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://martinfowler.com/bliki/Oslo.html"&gt;Go and read what Martin Fowler has to say about Oslo&lt;/a&gt; and also check out what MSDN has to say about MGrammar: 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd129870.aspx"&gt;MGrammar in a Nutshell&lt;/a&gt; &lt;/li&gt;
	&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd129869.aspx"&gt;MGrammar Language Specification&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
</description>
      <link>http://www.inwit.nl/post/Oslo-My-First-Language-in-MGrammar.aspx</link>
      <author>rj.nospam@nospam.vanholland.net (Robert Jan)</author>
      <comments>http://www.inwit.nl/post/Oslo-My-First-Language-in-MGrammar.aspx#comment</comments>
      <guid>http://www.inwit.nl/post.aspx?id=24e63df3-5e7c-440b-9c91-87c6e404fa73</guid>
      <pubDate>Wed, 05 Nov 2008 09:23:00 +0200</pubDate>
      <category>MGrammar</category>
      <category>Oslo</category>
      <dc:publisher>Robert Jan</dc:publisher>
      <pingback:server>http://www.inwit.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.inwit.nl/post.aspx?id=24e63df3-5e7c-440b-9c91-87c6e404fa73</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.inwit.nl/trackback.axd?id=24e63df3-5e7c-440b-9c91-87c6e404fa73</trackback:ping>
      <wfw:comment>http://www.inwit.nl/post/Oslo-My-First-Language-in-MGrammar.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.inwit.nl/syndication.axd?post=24e63df3-5e7c-440b-9c91-87c6e404fa73</wfw:commentRss>
    </item>
    <item>
      <title>Azure – A first look</title>
      <description>&lt;p&gt;So tonight I wanted to take a first look on Azure.   &lt;br /&gt;I installed all of the stuff needed :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;IIS7&amp;#160; (under Vista Ultimate 32bit on my machine)&lt;/li&gt;    &lt;li&gt;WindowsAzureSDK-x86.msi&lt;/li&gt;    &lt;li&gt;VSCloudService.msi&lt;/li&gt;    &lt;li&gt;SDK.msi (Microsoft SQL Server Data Services SDK)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;So I fired up VS2008 and started a new Web Cloud Service:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/AzureAfirstlook_131DB/image_4.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="174" alt="image" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/AzureAfirstlook_131DB/image_thumb_1.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;To check if all worked out, I pressed F5.. And first saw this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/AzureAfirstlook_131DB/image_6.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="101" alt="image" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/AzureAfirstlook_131DB/image_thumb_2.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;So OK, let’s restart VS2008 under Administrator rights (“Run as Administrator”) and I pressed F5 again.. I then first saw this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/AzureAfirstlook_131DB/image_8.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="76" alt="image" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/AzureAfirstlook_131DB/image_thumb_3.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;And after pressing YES I saw this error appear:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/AzureAfirstlook_131DB/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="186" alt="image" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/AzureAfirstlook_131DB/image_thumb.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;What the heck?! It’s using my Username (which is “Robert Jan” as a parameter to initialize the development storage. Fine of course, but please Microsoft, USE QUOTES when doing this! Because now, it stating that “Jan” is an unknown option…&lt;/p&gt;  &lt;p&gt;So why not try to initialize this storage ourselves and we’ll use DSInit with the quoted username (and prefixed with the domain name or local machine name):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/AzureAfirstlook_131DB/image_14.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="125" alt="image" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/AzureAfirstlook_131DB/image_thumb_6.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;And the result:   &lt;br /&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/AzureAfirstlook_131DB/image_12.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="186" alt="image" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/AzureAfirstlook_131DB/image_thumb_5.png" width="244" border="0" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;So now, I can play along :)&lt;/p&gt;</description>
      <link>http://www.inwit.nl/post/Azure-e28093-A-first-look.aspx</link>
      <author>rj.nospam@nospam.vanholland.net (Robert Jan)</author>
      <comments>http://www.inwit.nl/post/Azure-e28093-A-first-look.aspx#comment</comments>
      <guid>http://www.inwit.nl/post.aspx?id=1cf1ec0c-8c45-4fd9-8181-1c661acd33a6</guid>
      <pubDate>Sun, 02 Nov 2008 21:50:14 +0200</pubDate>
      <category>Azure</category>
      <dc:publisher>Robert Jan</dc:publisher>
      <pingback:server>http://www.inwit.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.inwit.nl/post.aspx?id=1cf1ec0c-8c45-4fd9-8181-1c661acd33a6</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.inwit.nl/trackback.axd?id=1cf1ec0c-8c45-4fd9-8181-1c661acd33a6</trackback:ping>
      <wfw:comment>http://www.inwit.nl/post/Azure-e28093-A-first-look.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.inwit.nl/syndication.axd?post=1cf1ec0c-8c45-4fd9-8181-1c661acd33a6</wfw:commentRss>
    </item>
    <item>
      <title>Oslo – Enabling MGrammarMode in Intellipad</title>
      <description>&lt;p&gt;
I installed the Oslo CTP SDK on my laptop, and wanted to try out some MGrammar stuff. I looked all around the tool to find the switch to enable the three pane view &amp;lsquo;MGrammar Mode&amp;acute; as was shown in the demo&amp;rsquo; s on the PDC.
&lt;/p&gt;
&lt;p&gt;
So when browsing the SDK folder I found the Sample Sources directory : &lt;br /&gt;
&amp;rdquo; C:\Program Files\Microsoft Oslo SDK 1.0\Bin\Intellipad\Sample Sources&amp;rdquo; 
&lt;/p&gt;
&lt;p&gt;
It contains a VS solution file which contains a Microsoft.M.Grammar.IntellipadPlugin project; so it seems to me that I should do something with this project. &lt;br /&gt;
So I fired up the solution and built it right away.
&lt;/p&gt;
&lt;p&gt;
Within the components directory of the Intellipad tool, I created a new folder called &amp;ldquo;Microsoft.M.Grammar.IntellipadPlugin&amp;rdquo; and I copied over a bunch of files:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/OsloEnablingMGrammarModeinIntellipad_100E5/image_4.png"&gt;&lt;img style="display: inline; border-width: 0px" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/OsloEnablingMGrammarModeinIntellipad_100E5/image_thumb_1.png" border="0" alt="image" title="image" width="625" height="270" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The Private directory contains the &amp;ldquo;ModeMenuItem.xcml&amp;rdquo; file which can be found in the Private directory at the samples source location. &lt;br /&gt;
&lt;br /&gt;
Also copy the Microsoft.M.Grammar.dll assembly into this new component directory and you are good to go.
&lt;/p&gt;
&lt;p&gt;
Now when you fire up Intellipad, and open an .mg file, you will see an &amp;ldquo;MGrammar Mode&amp;rdquo; menu item appear. Click it, select&amp;nbsp; &amp;ldquo;Tree Preview&amp;rdquo; and open up the .mg file, and you will see the three pane view like in the demo&amp;rsquo;s on the PDC.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;UPDATE 3/11/2008:&lt;br /&gt;
&lt;/strong&gt;Just found at that Owen Evans found this (and his solution is easier :) )out a bit earlier than I did, check&amp;nbsp;his&amp;nbsp;blog at &lt;a href="http://bgeek.net/2008/10/28/getting-oslos-intellipad-to-show-mgrammar-mode/"&gt;http://bgeek.net/2008/10/28/getting-oslos-intellipad-to-show-mgrammar-mode/&lt;/a&gt;&lt;br /&gt;
Also check out this intellipad blog: &lt;a href="http://blogs.msdn.com/intellipad/archive/2008/10/29/creating-and-editing-mgrammar-files-with-intellipad.aspx"&gt;http://blogs.msdn.com/intellipad/archive/2008/10/29/creating-and-editing-mgrammar-files-with-intellipad.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
</description>
      <link>http://www.inwit.nl/post/Oslo-e28093-Enabling-MGrammarMode-in-Intellipad.aspx</link>
      <author>rj.nospam@nospam.vanholland.net (Robert Jan)</author>
      <comments>http://www.inwit.nl/post/Oslo-e28093-Enabling-MGrammarMode-in-Intellipad.aspx#comment</comments>
      <guid>http://www.inwit.nl/post.aspx?id=eae706ab-8c9e-4ade-96a6-32d007be28e2</guid>
      <pubDate>Sun, 02 Nov 2008 16:06:00 +0200</pubDate>
      <category>MGrammar</category>
      <category>Oslo</category>
      <dc:publisher>Robert Jan</dc:publisher>
      <pingback:server>http://www.inwit.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.inwit.nl/post.aspx?id=eae706ab-8c9e-4ade-96a6-32d007be28e2</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.inwit.nl/trackback.axd?id=eae706ab-8c9e-4ade-96a6-32d007be28e2</trackback:ping>
      <wfw:comment>http://www.inwit.nl/post/Oslo-e28093-Enabling-MGrammarMode-in-Intellipad.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.inwit.nl/syndication.axd?post=eae706ab-8c9e-4ade-96a6-32d007be28e2</wfw:commentRss>
    </item>
    <item>
      <title>Blog updated – Syndication problem</title>
      <description>&lt;p&gt;A reader of my blog notified me of some syndication problem he had with this blog. After reading items,&amp;#160; they seem to get the ‘unread’ status again. Probably&amp;#160; due to some sort of update that takes place on those items.   &lt;br /&gt;I have upgraded my blog to &lt;a href="http://www.dotnetblogengine.net/"&gt;BlogEngine.NET 1.4.5&lt;/a&gt;, and hopefully this problem doesn’t occur any more.&lt;/p&gt;  &lt;p&gt;Let me know, if you also/still have this issue.&lt;/p&gt;</description>
      <link>http://www.inwit.nl/post/Blog-updated-e28093-Syndication-problem.aspx</link>
      <author>rj.nospam@nospam.vanholland.net (Robert Jan)</author>
      <comments>http://www.inwit.nl/post/Blog-updated-e28093-Syndication-problem.aspx#comment</comments>
      <guid>http://www.inwit.nl/post.aspx?id=20ef572d-2392-47fc-89df-9a3e603b2abf</guid>
      <pubDate>Sun, 02 Nov 2008 16:05:20 +0200</pubDate>
      <category>inwit.nl</category>
      <dc:publisher>Robert Jan</dc:publisher>
      <pingback:server>http://www.inwit.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.inwit.nl/post.aspx?id=20ef572d-2392-47fc-89df-9a3e603b2abf</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.inwit.nl/trackback.axd?id=20ef572d-2392-47fc-89df-9a3e603b2abf</trackback:ping>
      <wfw:comment>http://www.inwit.nl/post/Blog-updated-e28093-Syndication-problem.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.inwit.nl/syndication.axd?post=20ef572d-2392-47fc-89df-9a3e603b2abf</wfw:commentRss>
    </item>
    <item>
      <title>PDC 2008 Session Overview</title>
      <description>&lt;p&gt;Here are the sessions I attended, with links to my blog posts an to their recordings:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="600" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="97"&gt;Sunday&lt;/td&gt;        &lt;td valign="top" width="208"&gt;&lt;a href="http://inwit.nl/post/PDC-2008-ndash3b-Day-1-ndash3b-Pre-Conference--Working-with-WCF.aspx"&gt;Pre Conference : Working With WCF&lt;/a&gt;           &lt;br /&gt;- Juval Lowy &amp;amp; Ron Jacobs&lt;/td&gt;        &lt;td valign="top" width="293"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="98"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="206"&gt;&lt;a href="http://inwit.nl/post/PDC-2008-ndash3b-Day-1-ndash3b-Pre-Conference--Working-with-WCF-(Continued).aspx"&gt;Pre Conference : Working With WCF (Continued)&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="293"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="99"&gt;Monday &lt;/td&gt;        &lt;td valign="top" width="206"&gt;&lt;a href="http://inwit.nl/post/PDC-ndash3b-Day-2-ndash3b-Key-Note.aspx"&gt;Key Note&lt;/a&gt;&amp;#160; &lt;br /&gt;– Ray Ozzie …&lt;/td&gt;        &lt;td valign="top" width="293"&gt;&lt;a title="http://channel9.msdn.com/pdc2008/KYN01/" href="http://channel9.msdn.com/pdc2008/KYN01/"&gt;http://channel9.msdn.com/pdc2008/KYN01/&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="99"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="206"&gt;&lt;a href="http://inwit.nl/post/PDC-ndash3b-Day-2-ndash3b-A-Lap-Around-VSTS-2010.aspx"&gt;A Lap Around VSTS 2010&lt;/a&gt;&amp;#160; &lt;br /&gt;– &lt;a href="http://blogs.msdn.com/camerons/"&gt;Cameron Skinner&lt;/a&gt;&lt;a href="http://blogs.msdn.com/camerons/rss.xml"&gt;&lt;img height="9" alt="Subscribe to feed" src="http://www.davidlangworthy.com/mt-static/images/status_icons/feed.gif" width="9" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="293"&gt;&lt;a title="http://channel9.msdn.com/pdc2008/TL47/" href="http://channel9.msdn.com/pdc2008/TL47/"&gt;http://channel9.msdn.com/pdc2008/TL47/&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="99"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="206"&gt;&lt;a href="http://inwit.nl/post/PDC-ndash3b-Day-2-ndash3b-Dublin-and-NET-Services.aspx"&gt;Dublin and .NET Services&lt;/a&gt;&amp;#160; &lt;br /&gt;– Jacob Avital&lt;/td&gt;        &lt;td valign="top" width="293"&gt;&lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV-HQ/TL40.wmv"&gt;Download High Quality WMV&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="99"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="206"&gt;&lt;a href="http://inwit.nl/post/PDC-ndash3b-Day-2-ndash3b-The-Future-of-C.aspx"&gt;The Future of C#            &lt;br /&gt;&lt;/a&gt;- Anders Hejlsberg&lt;/td&gt;        &lt;td valign="top" width="293"&gt;&lt;a title="http://channel9.msdn.com/pdc2008/TL16/" href="http://channel9.msdn.com/pdc2008/TL16/"&gt;http://channel9.msdn.com/pdc2008/TL16/&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="99"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="206"&gt;Team Foundation Server 2010          &lt;br /&gt;Cool New Features           &lt;br /&gt;- &lt;a href="http://blogs.msdn.com/bharry/"&gt;Brian Harry&lt;/a&gt;&lt;a href="http://blogs.msdn.com/bharry/rss.xml"&gt;&lt;img height="9" alt="Subscribe to feed" src="http://www.davidlangworthy.com/mt-static/images/status_icons/feed.gif" width="9" /&gt;&lt;/a&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="293"&gt;&lt;a title="http://channel9.msdn.com/pdc2008/TL52/" href="http://channel9.msdn.com/pdc2008/TL52/"&gt;http://channel9.msdn.com/pdc2008/TL52/&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="99"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="206"&gt;Microsoft .NET:          &lt;br /&gt;Overview and Applications for Babies           &lt;br /&gt;- &lt;a href="http://www.hanselman.com/blog/"&gt;Scott Hanselman&lt;/a&gt;&lt;a href="http://feeds.feedburner.com/ScottHanselman"&gt;&lt;img height="9" alt="Subscribe to feed" src="http://www.davidlangworthy.com/mt-static/images/status_icons/feed.gif" width="9" /&gt;&lt;/a&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="293"&gt;&lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV-HQ/TL49.wmv"&gt;Download High Quality WMV&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="99"&gt;Tuesday&lt;/td&gt;        &lt;td valign="top" width="206"&gt;&lt;a href="http://inwit.nl/post/PDC-ndash3bDay-3-ndash3b-Key-Note.aspx"&gt;Key Note&lt;/a&gt;&amp;#160; &lt;br /&gt;- Ray Ozzie &amp;amp; &lt;a href="http://weblogs.asp.net/Scottgu/"&gt;Scott Guthrie&lt;/a&gt;&lt;a href="http://weblogs.asp.net/scottgu/rss.aspx"&gt;&lt;img height="9" alt="Subscribe to feed" src="http://www.davidlangworthy.com/mt-static/images/status_icons/feed.gif" width="9" /&gt;&lt;/a&gt;…&lt;/td&gt;        &lt;td valign="top" width="293"&gt;&lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV-HQ/KYN02.wmv"&gt;Download High Quality WMV&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="99"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="206"&gt;&lt;a href="http://inwit.nl/post/PDC-ndash3bDay-3-ndash3b-Key-Note.aspx"&gt;Key Note&lt;/a&gt;           &lt;br /&gt;- &lt;a href="http://www.pluralsight.com/community/blogs/dbox/"&gt;Don Box&lt;/a&gt;&lt;a href="http://www.pluralsight.com/community/blogs/dbox/rss.aspx"&gt;&lt;img height="9" alt="Subscribe to feed" src="http://www.davidlangworthy.com/mt-static/images/status_icons/feed.gif" width="9" /&gt;&lt;/a&gt; &amp;amp; &lt;a href="http://www.simplegeek.com/"&gt;Chris Anderson&lt;/a&gt;&lt;a href="http://www.simplegeek.com/blogxbrowsing.asmx/GetRss?"&gt;&lt;img height="9" alt="Subscribe to feed" src="http://www.davidlangworthy.com/mt-static/images/status_icons/feed.gif" width="9" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="293"&gt;&lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV-HQ/KYN03.wmv"&gt;Download High Quality WMV&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="99"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="206"&gt;&lt;a href="http://inwit.nl/post/PDC-ndash3b-Day-3-ndash3b-WCF-Zen-of-Performance-and-Scale.aspx"&gt;WCF Zen of Performance and Scale&lt;/a&gt;           &lt;br /&gt;- &lt;a href="http://blogs.msdn.com/drnick/"&gt;Nicholas Allen&lt;/a&gt;&lt;a href="http://blogs.msdn.com/drnick/rss.xml"&gt;&lt;img height="9" alt="Subscribe to feed" src="http://www.davidlangworthy.com/mt-static/images/status_icons/feed.gif" width="9" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="293"&gt;&lt;a title="http://channel9.msdn.com/pdc2008/TL38/" href="http://channel9.msdn.com/pdc2008/TL38/"&gt;http://channel9.msdn.com/pdc2008/TL38/&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="99"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="206"&gt;&lt;a href="http://inwit.nl/post/PDC-ndash3b-Day-3-ndash3b-A-Lap-Around-Oslo.aspx"&gt;A Lap Around Oslo            &lt;br /&gt;&lt;/a&gt;- &lt;a href="http://douglaspurdy.com/"&gt;Douglas Purdy&lt;/a&gt;&lt;a href="http://douglaspurdy.com/feed/"&gt;&lt;img height="9" alt="Subscribe to feed" src="http://www.davidlangworthy.com/mt-static/images/status_icons/feed.gif" width="9" /&gt;&lt;/a&gt; &amp;amp; &lt;a href="http://www.vijaye.com/"&gt;Vijaye Raji&lt;/a&gt;&lt;a href="http://www.vijaye.com/rss.aspx"&gt;&lt;img height="9" alt="Subscribe to feed" src="http://www.davidlangworthy.com/mt-static/images/status_icons/feed.gif" width="9" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="293"&gt;&lt;a title="http://channel9.msdn.com/pdc2008/TL23/" href="http://channel9.msdn.com/pdc2008/TL23/"&gt;http://channel9.msdn.com/pdc2008/TL23/&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="99"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="206"&gt;&lt;a href="http://inwit.nl/post/PDC-ndash3b-Day-3-ndash3b-Oslo-The-Language.aspx"&gt;“Oslo”: The Language            &lt;br /&gt;&lt;/a&gt;- &lt;a href="http://www.pluralsight.com/community/blogs/dbox/"&gt;Don Box&lt;/a&gt;&lt;a href="http://www.pluralsight.com/community/blogs/dbox/rss.aspx"&gt;&lt;img height="9" alt="Subscribe to feed" src="http://www.davidlangworthy.com/mt-static/images/status_icons/feed.gif" width="9" /&gt;&lt;/a&gt; &amp;amp; &lt;a href="http://www.davidlangworthy.com/"&gt;David Langworthy&lt;/a&gt;&lt;a href="http://www.davidlangworthy.com/atom.xml"&gt;&lt;img height="9" alt="Subscribe to feed" src="http://www.davidlangworthy.com/mt-static/images/status_icons/feed.gif" width="9" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="293"&gt;&lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV-HQ/TL27.wmv"&gt;Download High Quality WMV&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="99"&gt;Wednesday&lt;/td&gt;        &lt;td valign="top" width="206"&gt;&lt;a href="http://inwit.nl/post/PDC-ndash3b-Day-4-ndash3b-Key-Note.aspx"&gt;Key Note&lt;/a&gt;           &lt;br /&gt;- Rick Rashid&lt;/td&gt;        &lt;td valign="top" width="293"&gt;&lt;a title="http://channel9.msdn.com/pdc2008/KYN04/" href="http://channel9.msdn.com/pdc2008/KYN04/"&gt;http://channel9.msdn.com/pdc2008/KYN04/&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="99"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="206"&gt;&lt;a href="http://inwit.nl/post/PDC-ndash3b-Day-4-ndash3b-Building-WCF-Services-with-WF-in-NET-40.aspx"&gt;Building WCF Services with WF in .NET 4.0&lt;/a&gt;           &lt;br /&gt;- &lt;a href="http://blogs.msdn.com/edpinto/"&gt;Ed Pinto&lt;/a&gt;&lt;a href="http://blogs.msdn.com/edpinto/rss.xml"&gt;&lt;img height="9" alt="Subscribe to feed" src="http://www.davidlangworthy.com/mt-static/images/status_icons/feed.gif" width="9" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="293"&gt;&lt;a title="http://channel9.msdn.com/pdc2008/TL06/" href="http://channel9.msdn.com/pdc2008/TL06/"&gt;http://channel9.msdn.com/pdc2008/TL06/&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="99"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="206"&gt;&lt;a title="PDC – Day 4 – Oslo, Customizing and Extending the Visual Design Experience" href="http://inwit.nl/post/PDC-ndash3b-Day-4-ndash3b-Oslo2c-Customizing-and-Extending-the-Visual-Design-Experience.aspx"&gt;PDC – Day 4 – Oslo, Customizing and Extending the Visual Design Experience&lt;/a&gt;           &lt;br /&gt;- Florian Voss &amp;amp; &lt;a href="http://www.pluralsight.com/community/blogs/dbox/"&gt;Don Box&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="293"&gt;&lt;a title="http://channel9.msdn.com/pdc2008/TL18/" href="http://channel9.msdn.com/pdc2008/TL18/"&gt;http://channel9.msdn.com/pdc2008/TL18/&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="99"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="206"&gt;&lt;a href="http://inwit.nl/post/PDC-ndash3b-Day-4-ndash3b-Dublin2c-Hosting-and-Managing-Workflows-and-Sevices.aspx"&gt;Dublin, Hosting and Managing Workflows and Services&lt;/a&gt;           &lt;br /&gt;- Dan Eshner&lt;/td&gt;        &lt;td valign="top" width="293"&gt;&lt;a title="http://channel9.msdn.com/pdc2008/BB18/" href="http://channel9.msdn.com/pdc2008/BB18/"&gt;http://channel9.msdn.com/pdc2008/BB18/&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="99"&gt;Thursday&lt;/td&gt;        &lt;td valign="top" width="206"&gt;&lt;a href="http://inwit.nl/post/PDC-ndash3b-Final-Day-ndash3b-Web-Services-In-Native-Code.aspx"&gt;Web Services in Native Code&lt;/a&gt;           &lt;br /&gt;- &lt;a href="http://blogs.msdn.com/nikolad/"&gt;Nikola Dudar&lt;/a&gt;&lt;a href="http://blogs.msdn.com/nikolad/rss.xml"&gt;&lt;img height="9" alt="Subscribe to feed" src="http://www.davidlangworthy.com/mt-static/images/status_icons/feed.gif" width="9" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="293"&gt;&lt;a title="http://channel9.msdn.com/pdc2008/TL04/" href="http://channel9.msdn.com/pdc2008/TL04/"&gt;http://channel9.msdn.com/pdc2008/TL04/&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="99"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="206"&gt;&lt;a href="http://inwit.nl/post/PDC-ndash3b-Final-Day-ndash3b-Microsoft-NET-Framework--CLR-Futures.aspx"&gt;Microsoft .NET Framework : CLR Futures&lt;/a&gt;           &lt;br /&gt;- Joshua Goodman&lt;/td&gt;        &lt;td valign="top" width="293"&gt;&lt;a title="http://channel9.msdn.com/pdc2008/PC49/" href="http://channel9.msdn.com/pdc2008/PC49/"&gt;http://channel9.msdn.com/pdc2008/PC49/&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="99"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="206"&gt;&lt;a href="http://inwit.nl/post/PDC-ndash3b-Final-Day-ndash3b-Building-Textual-DSLrsquo3bs-with-the-ldquo3bOslordquo3b-Modelling-Language.aspx"&gt;“Oslo” Building Textual DSL’s&lt;/a&gt;           &lt;br /&gt;- &lt;a href="http://www.simplegeek.com/"&gt;Chris Anderson&lt;/a&gt;&lt;a href="http://www.simplegeek.com/blogxbrowsing.asmx/GetRss?"&gt;&lt;img height="9" alt="Subscribe to feed" src="http://www.davidlangworthy.com/mt-static/images/status_icons/feed.gif" width="9" /&gt;&lt;/a&gt; &amp;amp; Giovanni Della-Libera&lt;/td&gt;        &lt;td valign="top" width="293"&gt;&lt;a title="http://channel9.msdn.com/pdc2008/TL31/" href="http://channel9.msdn.com/pdc2008/TL31/"&gt;http://channel9.msdn.com/pdc2008/TL31/&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="99"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="206"&gt;&lt;a href="http://inwit.nl/post/PDC-ndash3b-Final-Day-ndash3b-Microsoft-NET-Workflow-Service.aspx"&gt;Microsoft .NET Workflow Service&lt;/a&gt;           &lt;br /&gt;- &lt;a href="http://blogs.msdn.com/moustafa"&gt;Moustafa Khalil Ahmed&lt;/a&gt;&lt;a href="http://blogs.msdn.com/moustafa/rss.xml"&gt;&lt;img height="9" alt="Subscribe to feed" src="http://www.davidlangworthy.com/mt-static/images/status_icons/feed.gif" width="9" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="293"&gt;&lt;a title="http://channel9.msdn.com/pdc2008/BB27/" href="http://channel9.msdn.com/pdc2008/BB27/"&gt;http://channel9.msdn.com/pdc2008/BB27/&lt;/a&gt;          &lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;</description>
      <link>http://www.inwit.nl/post/PDC-2008-Session-Overview.aspx</link>
      <author>rj.nospam@nospam.vanholland.net (Robert Jan)</author>
      <comments>http://www.inwit.nl/post/PDC-2008-Session-Overview.aspx#comment</comments>
      <guid>http://www.inwit.nl/post.aspx?id=2ae71db9-463b-48c2-9b27-8fb8b363a569</guid>
      <pubDate>Sat, 01 Nov 2008 16:59:13 +0200</pubDate>
      <category>PDC 2008</category>
      <dc:publisher>Robert Jan</dc:publisher>
      <pingback:server>http://www.inwit.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.inwit.nl/post.aspx?id=2ae71db9-463b-48c2-9b27-8fb8b363a569</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.inwit.nl/trackback.axd?id=2ae71db9-463b-48c2-9b27-8fb8b363a569</trackback:ping>
      <wfw:comment>http://www.inwit.nl/post/PDC-2008-Session-Overview.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.inwit.nl/syndication.axd?post=2ae71db9-463b-48c2-9b27-8fb8b363a569</wfw:commentRss>
    </item>
    <item>
      <title>PDC 2008 &amp;ndash; It&amp;rsquo;s a wrap!</title>
      <description>&lt;p&gt;
That was it! After five days stuffed with new technology, demo&amp;rsquo;s, source code, interesting people and a terrific conference,&amp;nbsp; it&amp;rsquo;s over!
&lt;/p&gt;
&lt;p&gt;
Tomorrow morning, I&amp;rsquo;ll get up really early to get my flight back home. Back to my lovely wife and daughter (I&amp;rsquo;ve never been away from my daughter for more than two nights, she&amp;rsquo;s 1,5 years old now;&amp;nbsp; so I&amp;rsquo;m excited to see her and my wife again)
&lt;/p&gt;
&lt;p&gt;
What was remarkable?
&lt;/p&gt;
&lt;p&gt;
The organization of the PDC. Its BIG, its HUGE and there are a LOT of people involved. Every day when you walk though the convention center you see hundreds of waiters, waitresses, stewards, technicians, cleaners, bus drivers and many more. &lt;br /&gt;
Also all those attendees from all over the world who come here to listen to the same thing... It was fun to see and hear people from Israel, Scotland, Germany, The Netherlands, Norway, America and many more countries that come to enjoy themselves with listening to talks and doing what they like most. &lt;br /&gt;
Last but not least, there was a total of 209 sessions spread over 4 days, all recorded so check them out at &lt;a href="https://sessions.microsoftpdc.com/public/timeline.aspx" title="https://sessions.microsoftpdc.com/public/timeline.aspx"&gt;https://sessions.microsoftpdc.com/public/timeline.aspx&lt;/a&gt; (look for the video tab when you select a session)
&lt;/p&gt;
&lt;p&gt;
(I&amp;rsquo;ll post an overview of all the sessions I attended and direct links to their recordings soon)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/PDC2008Itsawrap_14C8/2860588682_e021f9a92a_2.jpg"&gt;&lt;img style="display: inline; border: 0px" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/PDC2008Itsawrap_14C8/2860588682_e021f9a92a_thumb.jpg" border="0" alt="2860588682_e021f9a92a" title="2860588682_e021f9a92a" width="244" height="164" /&gt;&lt;/a&gt; &lt;br /&gt;
See you Saturday!
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;strong&gt;This was my first PDC, and I liked it! :)&lt;/strong&gt;
&lt;/p&gt;
</description>
      <link>http://www.inwit.nl/post/PDC-2008-ndash3b-Itrsquo3bs-a-wrap!.aspx</link>
      <author>rj.nospam@nospam.vanholland.net (Robert Jan)</author>
      <comments>http://www.inwit.nl/post/PDC-2008-ndash3b-Itrsquo3bs-a-wrap!.aspx#comment</comments>
      <guid>http://www.inwit.nl/post.aspx?id=a2b63567-9577-43a4-a61b-01915d968c40</guid>
      <pubDate>Fri, 31 Oct 2008 01:29:00 +0200</pubDate>
      <category>PDC 2008</category>
      <dc:publisher>Robert Jan</dc:publisher>
      <pingback:server>http://www.inwit.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.inwit.nl/post.aspx?id=a2b63567-9577-43a4-a61b-01915d968c40</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.inwit.nl/trackback.axd?id=a2b63567-9577-43a4-a61b-01915d968c40</trackback:ping>
      <wfw:comment>http://www.inwit.nl/post/PDC-2008-ndash3b-Itrsquo3bs-a-wrap!.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.inwit.nl/syndication.axd?post=a2b63567-9577-43a4-a61b-01915d968c40</wfw:commentRss>
    </item>
    <item>
      <title>PDC &amp;ndash; Final Day &amp;ndash; Microsoft .NET Workflow Service</title>
      <description>&lt;p&gt; This was the my final session of this day and the end of PDC 08 :(&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/PDCFinalDayMicrosoft.NETWorkflowService_FBD/DSC_4728.jpg"&gt;&lt;img title="DSC_4728" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="165" alt="DSC_4728" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/PDCFinalDayMicrosoft.NETWorkflowService_FBD/DSC_4728_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This session was about the “.NET Services” piece of the Azure Services Platform&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/PDCFinalDayMicrosoft.NETWorkflowService_FBD/DSC_4729.jpg"&gt;&lt;img title="DSC_4729" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="165" alt="DSC_4729" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/PDCFinalDayMicrosoft.NETWorkflowService_FBD/DSC_4729_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;With .NET 3.0 you had to host your workflow yourself, on your premise.   &lt;br /&gt;This PDC, we heard of two other options we now have:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/PDCFinalDayMicrosoft.NETWorkflowService_FBD/DSC_4730.jpg"&gt;&lt;img title="DSC_4730" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="165" alt="DSC_4730" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/PDCFinalDayMicrosoft.NETWorkflowService_FBD/DSC_4730_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You could use Dublin, also on-premise but provides with a lot of tools   &lt;br /&gt;You could now also use the .NET Workflow Service, a host for you workflow in the cloud!&lt;/p&gt;  &lt;p&gt;So what does the Workflow Service consist of:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/PDCFinalDayMicrosoft.NETWorkflowService_FBD/DSC_4732.jpg"&gt;&lt;img title="DSC_4732" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="165" alt="DSC_4732" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/PDCFinalDayMicrosoft.NETWorkflowService_FBD/DSC_4732_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;And what new activities do we get?&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/PDCFinalDayMicrosoft.NETWorkflowService_FBD/DSC_4733.jpg"&gt;&lt;img title="DSC_4733" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="165" alt="DSC_4733" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/PDCFinalDayMicrosoft.NETWorkflowService_FBD/DSC_4733_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The HttpSend activity is all about sending a request and getting a response.     &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;The HttpReceive is getting a request and sending a response     &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;The ServiceBusSend will let you send a message to the ISB     &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;The XPathRead will let you do an XPath on a piece of XML and act accordingly; so very suitable for content based routing&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;How will we be able to deploy and maintain our workflows to the cloud?&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/PDCFinalDayMicrosoft.NETWorkflowService_FBD/DSC_4735.jpg"&gt;&lt;img title="DSC_4735" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="165" alt="DSC_4735" src="http://www.inwit.nl/image.axd?picture=WindowsLiveWriter/PDCFinalDayMicrosoft.NETWorkflowService_FBD/DSC_4735_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;So you can do this by using the Azure portal, using .NET client API’s, calling the Azure SOAP web services directly and you can deploy a workflow from Visual Studio with just one mouse click (right click, deploy)&lt;/p&gt;</description>
      <link>http://www.inwit.nl/post/PDC-ndash3b-Final-Day-ndash3b-Microsoft-NET-Workflow-Service.aspx</link>
      <author>rj.nospam@nospam.vanholland.net (Robert Jan)</author>
      <comments>http://www.inwit.nl/post/PDC-ndash3b-Final-Day-ndash3b-Microsoft-NET-Workflow-Service.aspx#comment</comments>
      <guid>http://www.inwit.nl/post.aspx?id=a0a60398-a62f-41dd-a0da-bc846d6f23e9</guid>
      <pubDate>Fri, 31 Oct 2008 01:08:39 +0200</pubDate>
      <category>PDC 2008</category>
      <dc:publisher>Robert Jan</dc:publisher>
      <pingback:server>http://www.inwit.nl/pingback.axd</pingback:server>
      <pingback:target>http://www.inwit.nl/post.aspx?id=a0a60398-a62f-41dd-a0da-bc846d6f23e9</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.inwit.nl/trackback.axd?id=a0a60398-a62f-41dd-a0da-bc846d6f23e9</trackback:ping>
      <wfw:comment>http://www.inwit.nl/post/PDC-ndash3b-Final-Day-ndash3b-Microsoft-NET-Workflow-Service.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.inwit.nl/syndication.axd?post=a0a60398-a62f-41dd-a0da-bc846d6f23e9</wfw:commentRss>
    </item>
  </channel>
</rss>