{"id":526,"date":"2015-04-04T16:29:22","date_gmt":"2015-04-04T21:29:22","guid":{"rendered":"http:\/\/huewhite.com\/umb\/?p=526"},"modified":"2015-04-04T16:29:22","modified_gmt":"2015-04-04T21:29:22","slug":"current-project-ctd-2","status":"publish","type":"post","link":"https:\/\/huewhite.com\/umb\/2015\/04\/04\/current-project-ctd-2\/","title":{"rendered":"Current Project, Ctd"},"content":{"rendered":"<p>Update on the <a href=\"https:\/\/huewhite.com\/umb\/2015\/03\/30\/current-project-ctd\/\" target=\"_blank\">current project<\/a>: I&#8217;ve finished the entry of the compilation and encountered two or three places where recursion occurs; as noted earlier, they result in code that is not BNF-like.\u00a0 That&#8217;s reality.<\/p>\n<p>I&#8217;ve decided to attack the <em>semantics<\/em> problem in a consistent manner.\u00a0 For each production BNF, I will append a <em>processing parser<\/em>.\u00a0 A recursive descent parser consists of multiple parsers strung together using currying; about half of them consume input, the rest check whether the consumers are happy with the inputs.\u00a0 These processing parsers will evaluate the results of the parsing in the production, which will be stored during the parsing, and take appropriate actions.\u00a0 So, for example, Production 5, which in pure BNF form is<\/p>\n<blockquote><p>Name ::= NameStartChar (NameChar)*<\/p><\/blockquote>\n<p>and in <a href=\"http:\/\/mythryl.org\" target=\"_blank\">Mythryl<\/a> is currently<\/p>\n<blockquote><p>name = name_start_char &amp; &lt;name_char&gt; ;<\/p><\/blockquote>\n<p>will become<\/p>\n<blockquote><p>name = name_start_char &amp; &lt;name_char&gt; &amp; <strong>five_p<\/strong>;<\/p><\/blockquote>\n<p>Some processors will place results in a result parameter before calling the next parser, while others will collate results and invoke callback functions.\u00a0 <strong>five_p<\/strong> will be of the former sort.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Update on the current project: I&#8217;ve finished the entry of the compilation and encountered two or three places where recursion occurs; as noted earlier, they result in code that is not BNF-like.\u00a0 That&#8217;s reality. I&#8217;ve decided to attack the semantics problem in a consistent manner.\u00a0 For each production BNF, I \u2026 <a class=\"continue-reading-link\" href=\"https:\/\/huewhite.com\/umb\/2015\/04\/04\/current-project-ctd-2\/\"> Continue reading <span class=\"meta-nav\">&rarr; <\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-526","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/huewhite.com\/umb\/wp-json\/wp\/v2\/posts\/526","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/huewhite.com\/umb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/huewhite.com\/umb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/huewhite.com\/umb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/huewhite.com\/umb\/wp-json\/wp\/v2\/comments?post=526"}],"version-history":[{"count":3,"href":"https:\/\/huewhite.com\/umb\/wp-json\/wp\/v2\/posts\/526\/revisions"}],"predecessor-version":[{"id":532,"href":"https:\/\/huewhite.com\/umb\/wp-json\/wp\/v2\/posts\/526\/revisions\/532"}],"wp:attachment":[{"href":"https:\/\/huewhite.com\/umb\/wp-json\/wp\/v2\/media?parent=526"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/huewhite.com\/umb\/wp-json\/wp\/v2\/categories?post=526"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/huewhite.com\/umb\/wp-json\/wp\/v2\/tags?post=526"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}