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/l5otb1$1dhi$1...@digitalmars.com#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

Reply via email to