On 2013-11-11 09:28, simendsjo wrote:
I agree examples would help a lot. Trying to define what information
actually exists within these types would also help a lot.
I can tell you right now that I haven't figured out everything, far from
everything.
In the first example, would Ast!(bool) be something like this?
opBinary!"=="
left = opBinary!"+"
left = Literal
type = int
value = 1
right = Literal
type = int
value = 2
right = Literal
type = int
value = 4
Would there be helpers for matching part of the structure?
I don't know. As I said above, I haven't figured out everything. I don't
see any support for this in the language. But of course, there can be
library functions that help with this.
The same applies to the other types used - what information should they
have?
Suggestions are welcome. Also, see my reply to bearophile
http://forum.dlang.org/thread/[email protected]#post-l5q1p5:242bs4:241:40digitalmars.com
As for examples, here's a couple of suggestions:
* Expression to prefix notation
* Expression to SQL
* AutoImplement properties (like C#)
Would that be something like the attribute macro example?
http://wiki.dlang.org/DIP50#Attribute_macros
* Number intervals, like "int i = int[10..20];" where only 10 to 20 are
legal values
* Discriminated union
* Pattern matching
Pattern matching usually requires new syntax, which this proposal does
not support.
--
/Jacob Carlborg