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