[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH for Dlang support 1/2] d: change the return value of yylex fr
From: |
Adela Vais |
Subject: |
Re: [PATCH for Dlang support 1/2] d: change the return value of yylex from TokenKind to YYParser.Symbol |
Date: |
Fri, 20 Nov 2020 20:42:50 +0200 |
Hello H. S.,
În vin., 20 nov. 2020 la 20:31, H. S. Teoh <hsteoh@quickfur.ath.cx> a scris:
> Hi Adela,
>
> On Fri, Nov 20, 2020 at 04:40:54PM +0200, Adela Vais wrote:
> [...]
> > + case '+': return Calc.Symbol(TokenKind.PLUS, new
> YYLocation(startPos, endPos));
> > + case '-': return Calc.Symbol(TokenKind.MINUS, new
> YYLocation(startPos, endPos));
> > + case '*': return Calc.Symbol(TokenKind.STAR, new
> YYLocation(startPos, endPos));
> > + case '/': return Calc.Symbol(TokenKind.SLASH, new
> YYLocation(startPos, endPos));
> > + case '(': return Calc.Symbol(TokenKind.LPAR, new
> YYLocation(startPos, endPos));
> > + case ')': return Calc.Symbol(TokenKind.RPAR, new
> YYLocation(startPos, endPos));
>
> Is YYLocation a struct? If so, you should not use `new`, because that
> incurs a GC allocation per construction.
>
> If not, it probably should be made one, since as far as I can tell it's
> only used for storing a start/end point for position, is not
> polymorphic, and therefore does not need to be a class.
>
I took into account what we discussed, this is commit 1/2, the above change
is in commit 2/2. Thank you again for your help!
Should I make a squash with these 2 commits? I was thinking that they focus
on different things and this is why I kept them separate.
Adela
>
> [...]
> > + return Calc.Symbol(TokenKind.EOL, new YYLocation(startPos,
> endPos));
> [...]
>
> Ditto.
>
>
> --T
>
>