DMD's lexer available on code.dlang.org

Rikki Cattermole via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sun Jan 4 05:09:39 PST 2015


On 5/01/2015 2:07 a.m., Daniel Murphy wrote:
> I've created a dub package for the D version of DMD's lexer, generated
> automatically from the C++ source.
>
> github: https://github.com/yebblies/ddmd
> dub: http://code.dlang.org/packages/ddmd
>
> There are a few annoying limitations, such that it uses dmd's error
> printing and allocation functions, and requires configuration through
> 'global'.
>
> Here is an example program that uses the lexer:
>
> ======================
>
> import std.stdio;
> import std.file;
>
> import ddmd.tokens;
> import ddmd.lexer;
>
> /////////////////////////
>
> void main()
> {
>     Lexer.initLexer();
>
>     string data = "void blah() {} // stuff";
>     auto l = new Lexer("myfile", data.ptr, 0, data.length, 0, 0);
>     l.nextToken();
>     do
>     {
>         printf("token: %s\n", l.token.toChars());
>     }
>     while (l.nextToken() != TOKeof);
> }
>
> ======================
>
> Prints:
>
> token: void
> token: blah
> token: (
> token: )
> token: {
> token: }

I saw that. I'm really looking forward to getting my teeth into it and 
doing some good old refactoring. Although that will be a while because 
of the auto generated thing.


More information about the Digitalmars-d-announce mailing list