Bleh, nevermind. It does work without the begin-for-syntax. I think I need a 
syntax-local-transform, or whatever that function is that executes stuff at 
phase+1.

My original code was working because I had provided the syntax class at phase 0 
and 1, the non-working code only had the class at phase 1.

On 02/27/2012 01:32 PM, Jon Rafkind wrote:
> Ok but it still doesn't work if I take out the (begin-for-syntax).
>
> (define-syntax-class x)
>
> Now its defined at phase 0. Anyway if I can get the syntax class I can access 
> its attributes (ryan said it was ok).
>
> On 02/27/2012 01:28 PM, Carl Eastlund wrote:
>> You've bound x at phase 1, but you're looking up a phase 0 binding here.
>>
>> Bug aside, I had no idea there was anything meaningful for external users to 
>> do with the values underlying syntax classes.  What does the value let you 
>> do?
>>
>> Carl Eastlund
>>
>> On Mon, Feb 27, 2012 at 3:21 PM, Jon Rafkind <rafk...@cs.utah.edu 
>> <mailto:rafk...@cs.utah.edu>> wrote:
>>
>>     I thought syntax-local-value would produce the syntax-class object that 
>> a given identifier is bound to but it errors out with 'x is not defined as 
>> syntax'. Any ideas why? There is one part of my original code base where 
>> this works and another where it doesn't. I cannot seem to replicate the part 
>> that works in a small test case.
>>
>>     #lang racket
>>
>>     (require (for-syntax syntax/parse))
>>
>>     (begin-for-syntax
>>      (define-syntax-class x))
>>
>>     (define-syntax (bar stx)
>>      (syntax-case stx ()
>>        [(_ name) (syntax-local-value #'name)]))
>>
>>     (bar x)
>>
>
>
>
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users

____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to