Skip to content
Prev 44840 / 63424 Next

Issue with getParserData in R3.0.0

Hello,

I am migrating my package lambda.r to R3.0.0 and am experiencing some issues with the getParserData function (which replaces the parser package). Basically the function works in the R shell but fails when either called from RUnit or from R CMD check. 

I've narrowed it down to the function getSrcfile, which is returning different values depending on the code path. From the command line (works okay):

debug: srcfile <- getSrcfile(x)
Browse[2]> 
debug: if (is.null(srcfile)) return(NULL) else data <- srcfile$parseData
Browse[2]> srcfile
<text> 

When running from the Runit script I get this instead:
debug: srcfile <- getSrcfile(x)
Browse[3]> 
debug: if (is.null(srcfile)) return(NULL) else data <- srcfile$parseData
Browse[3]> srcfile
NULL


Below is an example calling the getParserData from the command line:
expression(abs_max(a, b) %::% numeric:numeric:numeric)
line1 col1 line2 col2 id parent                token terminal    text
27     1    1     1   42 27      0                 expr    FALSE        
14     1    1     1   13 14     27                 expr    FALSE        
1      1    1     1    7  1      3 SYMBOL_FUNCTION_CALL     TRUE abs_max
3      1    1     1    7  3     14                 expr    FALSE        
2      1    8     1    8  2     14                  '('     TRUE       (
4      1    9     1    9  4      6               SYMBOL     TRUE       a
... 

The RUnit call from the command line is
  runTestFile('/home/brian/workspace/lambda.r/inst/unitTests/runit.dispatching.4.R')

and fails because of the NULL value of srcfile. The first line of the runit test file is
  abs_max(a, b) %::% numeric:numeric:numeric

Any insights are appreciated.

Brian