{"id":2253,"date":"2019-09-04T07:56:05","date_gmt":"2019-09-04T11:56:05","guid":{"rendered":"http:\/\/codinggorilla.com\/?p=2253"},"modified":"2019-09-04T10:39:43","modified_gmt":"2019-09-04T14:39:43","slug":"adding-in-a-symbol-table-into-antlrvsix","status":"publish","type":"post","link":"http:\/\/165.227.223.229\/index.php\/2019\/09\/04\/adding-in-a-symbol-table-into-antlrvsix\/","title":{"rendered":"Adding in a symbol table into AntlrVSIX"},"content":{"rendered":"\n<p>I&#8217;m now working on adding in a full symbol table implementation into AntlrVSIX. This will help make the extension much more powerful with tasks such as tagging and navigating to defs.<\/p>\n\n\n\n<p>For better or worse, I&#8217;m starting with the implementation in <a rel=\"noreferrer noopener\" aria-label=\"Antlr Symtab (opens in a new tab)\" href=\"https:\/\/github.com\/antlr\/symtab\" target=\"_blank\">Antlr Symtab<\/a>. It looks like it&#8217;ll work out pretty well, but it is missing certain classes, and needs a little polishing. For example, VariableSymbol is the base class for FieldSymbol and ParameterSymbol, but there isn&#8217;t a class for variables defined and referenced in a method body. This makes it somewhat difficult to distinguish between a field and a local variable in a block.<\/p>\n\n\n\n<p>Also, for better or worse, I&#8217;ve added Mono.Cecil into the symbol table code. I&#8217;m not sure whether I&#8217;ll need this, but it&#8217;s there just in case. Mono contains a reader of PE files, which might be useful. But, what I&#8217;m really thinking of is the equivalent over in Java and other languages.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m now working on adding in a full symbol table implementation into AntlrVSIX. This will help make the extension much more powerful with tasks such as tagging and navigating to defs. For better or worse, I&#8217;m starting with the implementation in Antlr Symtab. It looks like it&#8217;ll work out pretty well, but it is missing &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/165.227.223.229\/index.php\/2019\/09\/04\/adding-in-a-symbol-table-into-antlrvsix\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Adding in a symbol table into AntlrVSIX&#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\/2253"}],"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=2253"}],"version-history":[{"count":0,"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/posts\/2253\/revisions"}],"wp:attachment":[{"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/media?parent=2253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/categories?post=2253"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/tags?post=2253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}