Le 11/05/2012 14:14, Roman D. Boiko a écrit :
On Friday, 11 May 2012 at 11:47:18 UTC, deadalnix wrote:
From the beginning, I'm think AST macro using CTFE.
Could you please elaborate?
I plan to strictly follow published D specification.
Exceptions from this rule are possible provided either of the following
is true:
* new functionality has been implemented in DMD but is not included into
specification yet
* specification is incorrect (has a bug) or incomplete, especially if
DMD behavior differs from specification
* change is compatible with specification and brings some significant
improvement (e.g., this seems to be the case for my decision to
introduce post-processor after lexer)
Some more exceptions might be added later, but the goal is to minimize
differences.
More explicitly, the goal isn't to implement a different language than D.
Simply doing the parsing/AST building in a way that would allow AST
macro to be introduced later.
Your 3 points seem reasonable. Mine were :
* Implement something that can parse D as it is currently
defined/implemented (if dmd's behavior and spec differs, it is handled
on a per case basis).
* Discard all deprecated features. Not even try to implement them even
if dmd support them currently.
* Do the parsing in several steps to allow different tools to work
with it.
I think we both have very compatibles goals. Let me do a clean package
of it I write about design goals. I don't have that much time right now
to do it, I will this week end.