Re: [PATCH for Dlang support 1/2] d: change the return value of yylex from TokenKind to YYParser.Symbol

Adela Vais <[email protected]>
Newsgroups gmane.comp.parsers.bison.patches
Message-ID <CAPk8xGf1PzOVyASdnneSWdVeinY1uF0+FvivJ=5s9a_cgWgXPQ@mail.gmail.com>
Hello H. S.,

În vin., 20 nov. 2020 la 20:31, H. S. Teoh <[email protected]> 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
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.