[plt-scheme] [redex] language keywords
On Wed, Jun 2, 2010 at 9:21 PM, Carl Eastlund <cce at ccs.neu.edu> wrote:
> On Wed, Jun 2, 2010 at 10:15 PM, Casey Klein
> <clklein at eecs.northwestern.edu> wrote:
>> On Wed, Jun 2, 2010 at 9:02 PM, Eric Tanter <etanter at dcc.uchile.cl> wrote:
>>>>> Is there something as simple/direct as the list of keywords in syntax-rules/syntax-case?
>>>>> If not, any alternative suggestion?
>>>>>
>>>>> Thanks!
>>>>>
>>>>> -- Éric
>>>>
>>>> Take a look at variable-prefix. In my latest Redex work, variables
>>>> all start with x, y, or z, and I just have to avoid any keywords that
>>>> start with those.
>>>
>>> Thanks Carl,
>>>
>>> I'm using these as well, actually.
>>> A problem I have is that, for readability, I have a non-terminal which is define as (x >> x) where '>>' is a keyword. I know I could just use (x x) for exactly the same, but it does enhance readability.
>>> The problem is that >> is considered as a pattern variable...
>>>
>>> with macros I could just say:
>>> (syntax-rules (>>)
>>> ((x >> x) ...))
>>>
>>> Any idea?
>>>
>>
>> I don't follow. The variables in a Redex pattern are always named
>> after non-terminals, so I don't see how >> could be treated as a
>> pattern variable.
>>
>> Do you mean that >> matches one of your six classes of variables?
>
> Is it possible Eric is using one of the forms that match using
> syntax-case instead of the Redex pattern matcher? Do term-let and
> where clauses still work that way?
Oh, good thinking! term-let uses syntax-case, but where clauses no longer do.
> (And if not, Eric, what version of PLT Scheme are you using?)
>