Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Not an OCaml solution (but OP asked):</p> <p>Our <a href="http://www.semanticdesigns.com/Products/DMS/DMSToolkit.html">DMS Software Reengineering Toolkit</a> is general purpose program analysis and transformation machinery. It is intended to be a convenient foundation for custom software engineering tools for computer languages, with the goal being to help the tool engineer get his job done, rather than spending his time reinventing the wheel. In particular, many people think that getting a parser is the big part of the job. This is simply false. See <a href="http://www.semanticdesigns.com/Products/DMS/LifeAfterParsing.html">Life After Parsing</a>.</p> <p>DMS has <a href="http://www.semanticdesigns.com/Products/FrontEnds">production front ends</a> for many languages, both modern and legacy, including <a href="http://www.semanticdesigns.com/Products/FrontEnds/VisualBasicFrontEnd.html">Visual Basic</a> in its variety of dialects (VB6, VBA [essentially the same as VB6]) and VB.net.</p> <p>By production I mean have been applied to real code systems of significant size and handle all the corresponding parsing issues. This is pretty hard for legacy languages, e.g., VB, especially the older dialects because such languages are generally poorly documented (VB6 and VBA especially so). The only way to get this right is to build a draft parser, run it against reality, and revise until lots of code goes through sensibly. This often takes longer than doing the draft parser because it isn't easy to understand the errors (they're undocumented!), you have to decide if they are real or the code base just has junk (more often than you'd think), guess what it means for the grammar and try it all again.</p> <p>These front ends as a minimum parse source code and build ASTs; they can also invert this process to regenerate <em>legal</em> compilable code with the comments back as source text files. The VisualBasic front ends do this. Some of our other front ends (C, C++, Java, COBOL) go further: name/type resolution, flow analysis, etc.; they do that by collecting key program facts from the language-specific AST and then apply DMS-supplied machinery to compute the results. This would be possible for VisualBasic, too, if such facts were useful.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload