On Friday, 11 May 2012 at 09:36:28 UTC, Jacob Carlborg wrote:
On 2012-05-11 11:22, Roman D. Boiko wrote:
Locations will possible to calculate
both taking into account special token sequences (e.g., #line 3
"ab/c.d"), or discarding them.

Aha, clever. As long as I can get out the information I'm happy :) How about adding properties for this in the token struct?
There is a method for that in Lexer interface, for me it looks like it belongth there and not to token. Version accepting token and producing a pair of start/end Locations will be added.

* Does it convert numerical literals and similar to their actual values
It is planned to add a post-processor for that as part of parser,
please see README.md for some more details.

Isn't that a job for the lexer?
That might be done in lexer for efficiency reasons (to avoid lexing token value again). But separating this into a dedicated post-processing phase leads to a much cleaner design (IMO), also suitable for uses when
such values are not needed.

That might be the case. But I don't think it belongs in the parser.
I will provide example code and a dedicated post later to illustrate my point.

Also I don't think that performance would be
improved given the ratio of number of literals to total number of tokens and the need to store additional information per token if it is done in
lexer. I will elaborate on that later.

Ok, fair enough. Perhaps this could be a property in the Token struct as well. In that case I would suggest renaming "value" to lexeme/spelling/representation, or something like that, and then name the new property "value".
I was going to rename value, but couldn't find a nice term. Thanks for your suggestions! As for the property with strongly typed literal value, currently I plan to put it into AST.

Reply via email to