{"version":"1.0","provider_name":"Visual Basic Blog","provider_url":"https:\/\/devblogs.microsoft.com\/vbteam","author_name":"Anthony D. Green [MSFT]","author_url":"https:\/\/devblogs.microsoft.com\/vbteam\/author\/anthony-d-green\/","title":"Roslyn Primer - Part I: Anatomy of a Compiler","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"zZHE9x91J1\"><a href=\"https:\/\/devblogs.microsoft.com\/vbteam\/roslyn-primer-part-i-anatomy-of-a-compiler\/\">Roslyn Primer &#8211; Part I: Anatomy of a Compiler<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/devblogs.microsoft.com\/vbteam\/roslyn-primer-part-i-anatomy-of-a-compiler\/embed\/#?secret=zZHE9x91J1\" width=\"600\" height=\"338\" title=\"&#8220;Roslyn Primer &#8211; Part I: Anatomy of a Compiler&#8221; &#8212; Visual Basic Blog\" data-secret=\"zZHE9x91J1\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script type=\"text\/javascript\">\n\/* <![CDATA[ *\/\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/devblogs.microsoft.com\/vbteam\/wp-includes\/js\/wp-embed.min.js\n\/* ]]> *\/\n<\/script>\n","thumbnail_url":"https:\/\/devblogs.microsoft.com\/vbteam\/wp-content\/uploads\/sites\/7\/2018\/08\/vbasicfeature.png","thumbnail_width":560,"thumbnail_height":350,"description":"So, you\u2019ve heard that VB (and C#) are open source now and you want to dive in and contribute. If you haven\u2019t spent your life building compilers, you probably don\u2019t know where to start. No worries, I\u2019ll walk you through it. This post is the first of a series of blog posts focused on the [&hellip;]"}