Looking for champion - std.lang.d.lex

Tomek Sowiński just at ask.me
Fri Oct 22 12:02:47 PDT 2010


Dnia 22-10-2010 o 00:01:21 Walter Bright <newshound2 at digitalmars.com>  
napisał(a):

> As we all know, tool support is important for D's success. Making tools  
> easier to build will help with that.
>
> To that end, I think we need a lexer for the standard library -  
> std.lang.d.lex. It would be helpful in writing color syntax highlighting  
> filters, pretty printers, repl, doc generators, static analyzers, and  
> even D compilers.
>
> It should:
>
> 1. support a range interface for its input, and a range interface for  
> its output
> 2. optionally not generate lexical errors, but just try to recover and  
> continue
> 3. optionally return comments and ddoc comments as tokens
> 4. the tokens should be a value type, not a reference type
> 5. generally follow along with the C++ one so that they can be  
> maintained in tandem
>
> It can also serve as the basis for creating a javascript implementation  
> that can be embedded into web pages for syntax highlighting, and  
> eventually an std.lang.d.parse.
>
> Anyone want to own this?

Interesting idea. Here's another: D will soon need bindings for CORBA,  
Thrift, etc, so lexers will have to be written all over to grok interface  
files. Perhaps a generic tokenizer which can be parametrized with a  
lexical grammar would bring more ROI, I got a hunch D's templates are  
strong enough to pull this off without any source code generation ala  
JavaCC. The books I read on compilers say tokenization is a solved  
problem, so the theory part on what a good abstraction should be is done.  
What you think?

--
Tomek


More information about the Digitalmars-d mailing list