Thanks for your response Alexis. You are right: once I figured out the 
correct way to customize the reader, the rest fell into place much more 
easily. Now, when my reader sees a dot it asks the base reader to read 
another piece of syntax, which must be an identifier.

So (define a.b 3) becomes (define a .b 3) and the default error message is 
good enough for now, especially since Racket prints out the 2nd version 
with the error message.

Also, I realized what a bad idea rewriting "a+b" to (+ a b) is. Because 
then I should do the same for subtraction. And then, for example, 
"struct-info" becomes (- struct info) which is a death sentence for a 
language based on Racket. So now infix notation requires whitespace around 
the operator.

For those curious "what are you really trying to do anyway?" I really like 
how at-exp can attach a convenient syntax onto racket without interfering 
with your ability to write standard racket. I am trying to do something 
similar. In my language, curly braces will get treated differently than the 
other paren-shapes. For example {if 10 .add1 {.equal? 11} 'yep 'nope} will 
get rewritten to (if (equal? (add1 10) 11) 'yep 'nope). My hope is that 
experienced Racketeers will find it convenient when they want to use it, 
and unintrusive when they don't. And that beginners who would be scared off 
by raw s-expressions will find it familiar enough to be pleasant.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to