Hi Jens Axel, Thanks for replying and explaining. Can you discriminate between a+b and |a+b| or a|+|b? I don't see how without using a language with it's own key-binding for |. I prefer my infix to be usable without forcing the user to go into a specific language. For the moment I use spaces. As ugly that I probably are not going to use my own infix :) Allowing spaces to be omitted restricts the names of variables too much deviating from Racket, imho. As I wrote before, I am just playing with a parser without explicit use of a push down automaton. So far my experience is that this is very well possible, in fact much easier. Thanks again, Jos
_____ From: [email protected] [mailto:[email protected]] On Behalf Of Jens Axel Søgaard Sent: viernes, 24 de abril de 2015 14:50 To: Jos Koot Cc: [email protected] Subject: Re: infix notation embedded in Racket 2015-04-23 18:51 GMT+02:00 Jos Koot <[email protected]>: Long ago I made various parsers (most of them in Fortran or assembler) for expressions with infix notation. I always used push-down automata with two or more stacks. Now I am playing with macros in Racket that allow infix notation embedded in Racket without explicitly using push-down automata. However, I encounter a contradiction in my desires as explained below. I have looked at 'Infix expressions for PLT Scheme' available in planet and made by Jens Axel Søgaard. In his approach a+b is evaluated as though written as (+ a b). However: #lang at-exp scheme (require (planet soegaard/infix)) (define a+b 4) (define a 1) (define b 2) @${a+b} ; evaluates to 3 A Racket variable can contain characters such as +, -, * etc. This makes @${a+b} confusing (not necessarily ambiguous, though, depending on syntax and semantics. The rule is that operators such as +,-, * behave as operators in infix expressions. My intention was to support identifiers with, say, - in them using bar notation as in |foo-bar| but I never got around to add them. If one want to allow the usual operators in identifiers without a quoting mechanism, then spaces are need to separate operators and identifiers - which may or may not fell annoying. /Jens Axel -- 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 [email protected]. For more options, visit https://groups.google.com/d/optout.

