{"id":2759,"date":"2020-07-29T06:26:58","date_gmt":"2020-07-29T10:26:58","guid":{"rendered":"http:\/\/codinggorilla.com\/?p=2759"},"modified":"2020-07-29T06:40:11","modified_gmt":"2020-07-29T10:40:11","slug":"antlrtreeediting-library-added","status":"publish","type":"post","link":"http:\/\/165.227.223.229\/index.php\/2020\/07\/29\/antlrtreeediting-library-added\/","title":{"rendered":"AntlrTreeEditing library added"},"content":{"rendered":"\n<p>I&#8217;ve pulled all the Antlr parse tree editing routines into its own library yesterday. This library fills a gap between what is offered in the Antlr runtime (<a href=\"https:\/\/www.antlr.org\/api\/Java\/index.html\" class=\"ek-link\">a psuedo XPath library<\/a>, <a href=\"https:\/\/www.antlr.org\/api\/Java\/index.html\" class=\"ek-link\">AddChild<\/a> and Parent accessors for ParserRuleContext), and a full-blown transformation system like <a href=\"https:\/\/en.wikipedia.org\/wiki\/ASF%2BSDF_Meta_Environment\" class=\"ek-link\">ASF+SDF<\/a>.<\/p>\n\n\n\n<p>This library contains:<\/p>\n\n\n\n<ul><li>a beefed-up XPath version 2 library;<\/li><li>a tree construction routine from an s-expression notation and an Antlr parser and lexer.<\/li><li>Antlr parse tree node replace and delete;<\/li><li>an exhanced parse tree node type that supports an observer pattern to keep data structures in sync when you modify a parse tree.<\/li><\/ul>\n\n\n\n<p>Right now it&#8217;s just in C#, but I plan at some point to translate it to Java because it is very useful.<\/p>\n\n\n\n<p>&#8211;Ken<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve pulled all the Antlr parse tree editing routines into its own library yesterday. This library fills a gap between what is offered in the Antlr runtime (a psuedo XPath library, AddChild and Parent accessors for ParserRuleContext), and a full-blown transformation system like ASF+SDF. This library contains: a beefed-up XPath version 2 library; a tree &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/165.227.223.229\/index.php\/2020\/07\/29\/antlrtreeediting-library-added\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;AntlrTreeEditing library added&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[],"tags":[],"_links":{"self":[{"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/posts\/2759"}],"collection":[{"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/comments?post=2759"}],"version-history":[{"count":0,"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/posts\/2759\/revisions"}],"wp:attachment":[{"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/media?parent=2759"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/categories?post=2759"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/tags?post=2759"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}