DMD's lexer available on code.dlang.org
Kiith-Sa via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Sun Jan 4 07:10:01 PST 2015
On Sunday, 4 January 2015 at 13:07:34 UTC, 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: }
(sorry if you get this question too often)
How is DDMD as a whole going? Is it getting closer or are ongoing
DMD changes slowing it down too much?
Anyway, great to have the lexer on DUB, not going to use if for
now because I expect there to be changes, but I guess it may
eventually be useful for writing tools.
More information about the Digitalmars-d-announce
mailing list