DScanner is ready for use

qznc qznc at web.de
Mon Jul 29 02:04:20 PDT 2013


On Saturday, 27 July 2013 at 22:27:35 UTC, Brian Schott wrote:
> DScanner is a tool for analyzing D source code. It has the 
> following features:
>
> * Prints out a complete AST of a source file in XML format.
> * Syntax checks code and prints warning/error messages
> * Prints a listing of modules imported by a source file
> * Syntax highlights code in HTML format
> * Provides more meaningful "line of code" count than wc
> * Counts tokens in a source file
>
> The lexer/parser/AST are located in the "std/d" directory in 
> the repository. These files should prove useful to anyone else 
> working on D tooling.
>
> https://github.com/Hackerpilot/Dscanner
>
> Aside: the D grammar that I reverse-engineered can be located 
> here: 
> https://rawgithub.com/Hackerpilot/DGrammar/master/grammar.html

Dscanner looks like a good starting point for a code formatting 
tool (like gofmt). However, there seems to be a tradeoff with 
performance involved. For compilation you want a fast lexer and 
parser. For formatting you need to preserve comments, though.

For example, convert this from source to AST to source without 
losing the comments:

void /*hello*/ /*world*/ main () { }


More information about the Digitalmars-d-announce mailing list