[Rd] detect ->

Gábor Csárdi c@@rd|@g@bor @end|ng |rom gm@||@com
Mon Apr 13 10:32:16 CEST 2020


On Mon, Apr 13, 2020 at 9:23 AM Gabriel Becker <gabembecker using gmail.com> wrote:
[...]
> This means the only feasible way to detect it, which a few projects do I believe, is process the code while it is still raw text, before it goes into the parser, and have clever enough regular expressions.

Well, especially considering R's news raw strings with user defined
delimiters, regular expressions are not the best here, I think. OTOH
the source references do keep the right assignment. So if you can
re-parse the data, you can detect them:

❯ x <- parse(text = "A -> B", keep.source=FALSE)
❯ x
expression(B <- A)

❯ x <- parse(text = "A -> B")
❯ x
expression(A -> B)

❯ getParseData(x)
  line1 col1 line2 col2 id parent        token terminal text
7     1    1     1    6  7      0         expr    FALSE
1     1    1     1    1  1      3       SYMBOL     TRUE    A
3     1    1     1    1  3      7         expr    FALSE
2     1    3     1    4  2      7 RIGHT_ASSIGN     TRUE   ->
4     1    6     1    6  4      6       SYMBOL     TRUE    B
6     1    6     1    6  6      7         expr    FALSE

Gabor

[...]



More information about the R-devel mailing list