[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH for Dlang support] d: add support for lookahead correction
From: |
H. S. Teoh |
Subject: |
Re: [PATCH for Dlang support] d: add support for lookahead correction |
Date: |
Wed, 18 Nov 2020 04:44:38 -0800 |
On Wed, Nov 18, 2020 at 08:46:22AM +0100, Akim Demaille wrote:
> > Le 17 nov. 2020 à 19:09, Adela Vais <adela.vais99@gmail.com> a écrit :
> >
> > When using lookahead correction, the method
> > YYParser.Context.getExpectedTokens is not annotated with const,
> > because the method calls yylacCheck, which is not const.
>
> It is logically const though. It's only because its auxiliary stack
> is stored in the parser to avoid repeated construction/destruction,
> that it needs to "alter the parser".
[[...]
D unfortunately does not have "logical const". It has "physical const"
which is mechanically enforced by the compiler. Furthermore, const is
"infectious" (transitive): once a reference is marked const, everything
it refers to is also const, as far as can be seen via that reference. A
const reference can refer to a mutable object, but you cannot modify the
object through that reference, it can only be mutable through a mutable
reference.
T
--
If you think you are too small to make a difference, try sleeping in a closed
room with a mosquito. -- Jan van Steenbergen