Thread overview
D expression evaluator?
Aug 30, 2007
Chad J
Aug 30, 2007
BLS
Sep 05, 2007
Jascha Wetzel
Sep 05, 2007
Don Clugston
August 30, 2007
Has anyone written (in D, or something compilable to D like enki bnf) a D expression evaluator?  Even a parser?

For clarity, what I'm looking for is something that parses and evaluates D expressions like (a && foo(b))

This is related to my other post about a unittest helper module, since this is one component that would fulfill like 90% of the work for that project.

Apparently Don has something close in BLADE that works at compile time, though I don't know what source files do the parsing or how to use it for simply evaluating expressions rather than codegen.

Any help would be appreciated.
August 30, 2007
I guess Jascha's APaged is all you need.
On http://apaged.mainia.de/ you'll find an example grammar that does simple expression evaluation.
HTH
Bjoern

Chad J schrieb:
> Has anyone written (in D, or something compilable to D like enki bnf) a D expression evaluator?  Even a parser?
> 
> For clarity, what I'm looking for is something that parses and evaluates D expressions like (a && foo(b))
> 
> This is related to my other post about a unittest helper module, since this is one component that would fulfill like 90% of the work for that project.
> 
> Apparently Don has something close in BLADE that works at compile time, though I don't know what source files do the parsing or how to use it for simply evaluating expressions rather than codegen.
> 
> Any help would be appreciated.
September 05, 2007
Chad J wrote:
> Has anyone written (in D, or something compilable to D like enki bnf) a D expression evaluator?  Even a parser?
> 
> For clarity, what I'm looking for is something that parses and evaluates D expressions like (a && foo(b))
> 
> This is related to my other post about a unittest helper module, since this is one component that would fulfill like 90% of the work for that project.
> 
> Apparently Don has something close in BLADE that works at compile time, though I don't know what source files do the parsing or how to use it for simply evaluating expressions rather than codegen.

At present, my code doesn't cope with function calls, so it won't do what you want.

> 
> Any help would be appreciated.
September 05, 2007
BLS wrote:
> I guess Jascha's APaged is all you need.
> On http://apaged.mainia.de/ you'll find an example grammar that does simple expression evaluation.
> HTH
> Bjoern

the examples are very simplistic, but the D grammar from seatd has complete expression support: http://seatd.mainia.de/
it doesn't evaluate them yet, though.