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: jensaxelsoega...@gmail.com [mailto:jensaxelsoega...@gmail.com] On
Behalf Of Jens Axel Søgaard
Sent: viernes, 24 de abril de 2015 14:50
To: Jos Koot
Cc: racket-users@googlegroups.com
Subject: Re: infix notation embedded in Racket


2015-04-23 18:51 GMT+02:00 Jos Koot <jos.k...@gmail.com>:



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 racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to