On 31/03/2009, at 6:40 PM, Emmanuel Onzon wrote:

>
> Having priorities allows this because you can insert one between
> two others, Hmm. Note this required deleting a priority and adding two
> more if they're not transitive .. hmmm ...
>
> Adding new priorities is not a problem, but deleting them
> is currently not possible (except when going out of scope).
> Could you give me an example where you need to delete
> a priority to insert a new operator in the grammar ?
>



Ooops, bad language .. I meant "priority relations".

Suppose you have + < ^  (addition less than
exponentiation) and you want to add multiplication:

        + < *
        * < ^

then since Dypgen relations are not transitive you have to *remove* the
relation

        + < ^

to build a strict chain. Felix doesn't need a strict chain usually.  
However there's
a nasty case which should use one:

        e ^ - 2

Say this shouldn't be allowed even though it unambiguously means

        e ^ ( -2 )

because

        - e ^ 2

actually means

        - (e ^ 2)

and not

        (-e) ^ 2

Felix actually allows e ^ -2, but the grammar is quite confusing, it  
allows this too:

        e ^ sin x

which could mean

        (e ^ sin) x

if you didn't know better. I've been caught by this myself. Anyhow, an  
example where
one wants to *use* the non-transitivity, which requires removing a  
previously
existing relation (but not the priority itself).


--
john skaller
skal...@users.sourceforge.net





------------------------------------------------------------------------------
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to