[Rd] parse() drops parse data when encountering `` (bug?)

Miles McBain m||e@@mcb@|n @end|ng |rom gm@||@com
Fri Jul 5 13:31:31 CEST 2019


Hi,

I've noticed that partial parse data from parse() is irretrivable when it
errors due to encountering '``' - two backticks in sequence. The print
output also looks more limited than a regular parser error which leads me
to suspect this is a bug. If this is the case could someone with the
authority please add it to R's bug tracker?

My reprex follows.

Thanks,
Miles

``` r
target_text <- "foo = 1 `` {r} foo = 2"
tstfile = srcfile(tempfile())
parse(text = target_text,
      keep.source = TRUE,
      srcfile = tstfile)
#> Error in parse(text = target_text, keep.source = TRUE, srcfile =
tstfile): attempt to use zero-length variable name

getParseData(tstfile)
#> NULL

target_text2 <- "foo = 1 {r} foo = 2"
tstfile = srcfile(tempfile())
parse(text = target_text2,
      keep.source = TRUE,
      srcfile = tstfile)
#> Error in parse(text = target_text2, keep.source = TRUE, srcfile =
tstfile): /tmp/RtmpXuGaL1/file5434ebd1f95:1:9: unexpected '{'
#> 1: foo = 1 {
#>             ^

getParseData(tstfile)
#>   line1 col1 line2 col2 id parent        token terminal text
#> 8     1    1     1    7  8      0 equal_assign    FALSE
#> 1     1    1     1    3  1      3       SYMBOL     TRUE  foo
#> 3     1    1     1    3  3      8         expr    FALSE
#> 2     1    5     1    5  2      8    EQ_ASSIGN     TRUE    =
#> 4     1    7     1    7  4      5    NUM_CONST     TRUE    1
#> 5     1    7     1    7  5      8         expr    FALSE
#> 6     1    9     1    9  6      0          '{'     TRUE    {

sessionInfo()
#> R version 3.6.0 (2019-04-26)
#> Platform: x86_64-pc-linux-gnu (64-bit)
#> Running under: Pop!_OS 18.10
#>
#> Matrix products: default
#> BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.8.0
#> LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.8.0
#>
#> locale:
#>  [1] LC_CTYPE=en_AU.UTF-8       LC_NUMERIC=C
#>  [3] LC_TIME=en_AU.UTF-8        LC_COLLATE=en_AU.UTF-8
#>  [5] LC_MONETARY=en_AU.UTF-8    LC_MESSAGES=en_AU.UTF-8
#>  [7] LC_PAPER=en_AU.UTF-8       LC_NAME=C
#>  [9] LC_ADDRESS=C               LC_TELEPHONE=C
#> [11] LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C
#>
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base
#>
#> loaded via a namespace (and not attached):
#>  [1] compiler_3.6.0  magrittr_1.5    tools_3.6.0     htmltools_0.3.6
#>  [5] yaml_2.2.0      Rcpp_1.0.1      stringi_1.4.3   rmarkdown_1.12
#>  [9] highr_0.8       knitr_1.23      stringr_1.4.0   xfun_0.8
#> [13] digest_0.6.19   evaluate_0.14
```

<sup>Created on 2019-07-05 by the [reprex package](
https://reprex.tidyverse.org) (v0.2.1)</sup>

	[[alternative HTML version deleted]]



More information about the R-devel mailing list