[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [wishlist]



On Wed, 07 May 2003 13:32:57 -0400, Etienne Gagnon wrote:

>I am not sure I understand your request.  Can you elaborate on your 
>notation and examples of where this would be useful?  How would the 
>AST nodes naming convention apply? 
> 
>Why use the "/" symbol?  Wouldn't a new keyword be easier to read and 
>understand? 
> 
There are no key words for ?, + or *.
This is in the same style.
I just happened to use / because it was easy.
At first I thought to use \ for right associative but saw that it was unnecessary.
It just reversed the order of the list.

Would S @ T or S # T or S % T be any better?

Another example:
PARAMETER_LIST = COMMA / PARAMETER;

or would the following be better?
PARAMETER_LIST = PARAMETER # COMMA;

Notice I reversed the notation.

The idea is that a list of something separated by something else
would be easy to specify and produce a compact AST.
A common feature of programming languages.
The naming works the same as for +.
In this case there are two ordered lists. (S and T for the first example).

>Etienne 
> 
>Ken Walter wrote: 
>>  In addition to ? + and *, a useful notation could be "list" 
>>  of the form something like: 
>>  	E = S / T; 
>>  which would mean 
>>  	E = T 
>>  
>>  	   | E S T; 
>>  
>>  This would produce two lists of Ss and Ts. 
>>  This would automatically take care of what I think is one of the most 
>>  frequent transforms of the parse tree. 
>>  Processing the list from one end or the other would take care of 
>>  associativity. 
>>  
>>  
>>  
>>  
>>  
> 
> 
>--  
>Etienne M. Gagnon, Ph.D.             http://www.info.uqam.ca/~egagnon/ 
>SableVM:                                       http://www.sablevm.org/ 
>SableCC:                                       http://www.sablecc.org/ 
> 
>


-

All of the above is hearsay.

Ken Walter
Solution Technology