4 ms·
Wait, never mind, I did implement syntax objects. So yes, there is syntax case. There are couple of limitations but it mostly works
by maplant 2y ago
Wait, never mind, I did implement syntax objects. So yes, there is syntax case. There are couple of limitations but it mostly works
- bjoli 2y agoI could't see any datum->syntax or syntax->datum anywhere. If you have it, you know you can just implement syntax-rules in syntax-case? I do believe that is how chez, guile and racket does it.
- maplant 2y agoThose two functions are indeed missing. However, you can create syntax objects with `syntax-quote`. Again, lots of missing functionality. They shouldn't be hard to implement tho, I just need to add template ids to the transformer. If you're wondering how the hygiene works, each Identifier besides its name includes a set of "marks" (random unsigned integers). Identifiers are only equal if each name and their marks are equal. There's quite a bit more to this, but I feel you may be aware of how this works. I do know. I haven't done that yet for no real practical reason besides some vestigial code that I have yet to remove. They are basically implemented the same already, under the hood they are both just transformers, I just haven't removed the AST code for syntax rules.