Date: Thu, 15 Apr 2021 14:02:17 +0200
Aaron,
on Thu, 15 Apr 2021 07:08:34 -0400 you (Aaron Ballman
<aaron_at_[hidden]>) wrote:
> On Thu, Apr 15, 2021 at 6:50 AM Jens Gustedt via Liaison
> <liaison_at_[hidden]> wrote:
> >
> > Ville,
> >
> > on Thu, 15 Apr 2021 13:22:05 +0300 you (Ville Voutilainen
> > <ville.voutilainen_at_[hidden]>) wrote:
> ...
> > no, these operators are not new, they would just be different
> > spellings
> >
> > (and I described how I see that this fits into the C specification
> > in several papers, you could have a look at
> > http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2644.pdf, for
> > example)
> > > and add them as alternative spellings of some existing semantic
> > > descriptions. Overall, I think there's not much specification
> > > difficulty, at least not for things that are just alternate
> > > spellings.
> >
> > That's the kind of information that I was after, thank you.
> >
> > > I don't know whether you envision adding new operators,
> >
> > no
>
> Then these aren't "just different spellings" as far as I can tell. For
> example, this is valid C++ code that uses a different spelling:
>
> struct S {
> int operator and(int i); // [lex.digraph]
> int operator <::>(int i) const; // [lex.digraph]
> };
yes
> Why are these hypothetical punctuators different?
Sorry, maybe I don't get what you are asking.
If you'd have `¬a ∧ b` that would just be another spelling of `!a && b`.
If you'd have `⟦vendor∷pride⟧` that would effectively be two new
tokens `⟦` and `⟧` that the languages do not yet have, compared to the
one token `∷` that would be another spelling of `::`. We would have to
have a syntax rule to make this equivalent to `[[vendor::pride]]`.
But these tokens would not be operator tokens with new semantic or so,
just new syntactic notation of some part of a declarator.
Jens
on Thu, 15 Apr 2021 07:08:34 -0400 you (Aaron Ballman
<aaron_at_[hidden]>) wrote:
> On Thu, Apr 15, 2021 at 6:50 AM Jens Gustedt via Liaison
> <liaison_at_[hidden]> wrote:
> >
> > Ville,
> >
> > on Thu, 15 Apr 2021 13:22:05 +0300 you (Ville Voutilainen
> > <ville.voutilainen_at_[hidden]>) wrote:
> ...
> > no, these operators are not new, they would just be different
> > spellings
> >
> > (and I described how I see that this fits into the C specification
> > in several papers, you could have a look at
> > http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2644.pdf, for
> > example)
> > > and add them as alternative spellings of some existing semantic
> > > descriptions. Overall, I think there's not much specification
> > > difficulty, at least not for things that are just alternate
> > > spellings.
> >
> > That's the kind of information that I was after, thank you.
> >
> > > I don't know whether you envision adding new operators,
> >
> > no
>
> Then these aren't "just different spellings" as far as I can tell. For
> example, this is valid C++ code that uses a different spelling:
>
> struct S {
> int operator and(int i); // [lex.digraph]
> int operator <::>(int i) const; // [lex.digraph]
> };
yes
> Why are these hypothetical punctuators different?
Sorry, maybe I don't get what you are asking.
If you'd have `¬a ∧ b` that would just be another spelling of `!a && b`.
If you'd have `⟦vendor∷pride⟧` that would effectively be two new
tokens `⟦` and `⟧` that the languages do not yet have, compared to the
one token `∷` that would be another spelling of `::`. We would have to
have a syntax rule to make this equivalent to `[[vendor::pride]]`.
But these tokens would not be operator tokens with new semantic or so,
just new syntactic notation of some part of a declarator.
Jens
-- :: INRIA Nancy Grand Est ::: Camus ::::::: ICube/ICPS ::: :: ::::::::::::::: office Strasbourg : +33 368854536 :: :: :::::::::::::::::::::: gsm France : +33 651400183 :: :: ::::::::::::::: gsm international : +49 15737185122 :: :: http://icube-icps.unistra.fr/index.php/Jens_Gustedt ::
Received on 2021-04-15 07:02:27