{"id":2249,"date":"2019-08-27T20:50:13","date_gmt":"2019-08-28T00:50:13","guid":{"rendered":"http:\/\/codinggorilla.com\/?p=2249"},"modified":"2019-08-27T20:54:01","modified_gmt":"2019-08-28T00:54:01","slug":"extending-antlrvsix-with-rust-adding-a-general-wrapper-for-cli-tools-to-msbuild","status":"publish","type":"post","link":"http:\/\/165.227.223.229\/index.php\/2019\/08\/27\/extending-antlrvsix-with-rust-adding-a-general-wrapper-for-cli-tools-to-msbuild\/","title":{"rendered":"Extending AntlrVSIX with Rust; Adding a general wrapper for CLI tools to Msbuild"},"content":{"rendered":"\n<p>I&#8217;ve started two new tasks.<\/p>\n\n\n\n<p>(1) I&#8217;m adding a Rust parser to AntlrVSIX. The grammar I&#8217;m using is <a href=\"https:\/\/github.com\/jorendorff\/rust-grammar\">an old grammar from Jason Orendorff<\/a>. Unfortunately, it hasn&#8217;t been updated for several years. Also, it looks like it isn&#8217;t correct because there are cases where tokens are not correctly defined, e.g., &#8216;>&#8217; &#8216;=&#8217; instead of &#8216;>=&#8217;. It&#8217;s incorrect because the parser would allow a space between the &#8216;>&#8217; and &#8216;=&#8217; in the input, which is probably not intended. I&#8217;m first updating the grammar by separating the parser and lexer grammars, then I&#8217;ll add in rules recognized by <a href=\"https:\/\/github.com\/rust-lang\/rust\/blob\/master\/src\/grammar\">another grammar<\/a>.<\/p>\n\n\n\n<p>(2) I&#8217;m really disappointed in the fact that no one seems to have written a general wrapper for command-line tools for Msbuild. I wrote a wrapper for the Antlr Java tool, but I&#8217;ve noticed that I&#8217;m going to have to write yet again another wrapper for Rust&#8217;s tools. I now realize that all of these wrappers can be generalized into a single wrapper with a specification of inputs and outputs. When I&#8217;m finished with the Rust grammar, I plan to write this tool, and rewrite the Antlr Java wrapper with it. It is no wonder why it seems everyone is using Visual Studio Code. I would too, but it&#8217;s written is the most awful of all languages, Javascript.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve started two new tasks. (1) I&#8217;m adding a Rust parser to AntlrVSIX. The grammar I&#8217;m using is an old grammar from Jason Orendorff. Unfortunately, it hasn&#8217;t been updated for several years. Also, it looks like it isn&#8217;t correct because there are cases where tokens are not correctly defined, e.g., &#8216;>&#8217; &#8216;=&#8217; instead of &#8216;>=&#8217;. &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/165.227.223.229\/index.php\/2019\/08\/27\/extending-antlrvsix-with-rust-adding-a-general-wrapper-for-cli-tools-to-msbuild\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Extending AntlrVSIX with Rust; Adding a general wrapper for CLI tools to Msbuild&#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\/2249"}],"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=2249"}],"version-history":[{"count":0,"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/posts\/2249\/revisions"}],"wp:attachment":[{"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/media?parent=2249"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/categories?post=2249"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/tags?post=2249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}