[Rd] interpreting the output of getParseData()
Dan Tenenbaum
dtenenba at fhcrc.org
Sat Jan 25 23:23:08 CET 2014
Hi,
I'm trying to make sense of the output of getParseData(). The "parent" column is supposed to refer to the "id" of the parent of the given item, but there are numbers in the parent column that do not exist in the id column. Example:
> p <- parse(text="f<-function(){if(TRUE)1 else 2}")
> df <- getParseData(p)
> df
line1 col1 line2 col2 id parent token terminal text
29 1 1 1 31 29 30 expr FALSE
1 1 1 1 1 1 3 SYMBOL TRUE f
3 1 1 1 1 3 29 expr FALSE
2 1 2 1 3 2 29 LEFT_ASSIGN TRUE <-
28 1 4 1 31 28 29 expr FALSE
4 1 4 1 11 4 28 FUNCTION TRUE function
5 1 12 1 12 5 28 '(' TRUE (
6 1 13 1 13 6 28 ')' TRUE )
25 1 14 1 31 25 27 expr FALSE
7 1 14 1 14 7 25 '{' TRUE {
22 1 15 1 30 22 23 expr FALSE
8 1 15 1 16 8 22 IF TRUE if
9 1 17 1 17 9 13 '(' TRUE (
10 1 18 1 21 10 11 NUM_CONST TRUE TRUE
11 1 18 1 21 11 13 expr FALSE
12 1 22 1 22 12 13 ')' TRUE )
14 1 23 1 23 14 15 NUM_CONST TRUE 1
15 1 23 1 23 15 17 expr FALSE
16 1 25 1 28 16 22 ELSE TRUE else
18 1 30 1 30 18 19 NUM_CONST TRUE 2
19 1 30 1 30 19 21 expr FALSE
20 1 31 1 31 20 25 '}' TRUE }
The following numbers occur in the parent column but not the id column:
[1] 30 27 23 13 17 21
What I'm trying to do is determine the length (in lines) of every function in a source file using
the getParseData() information. I can see that the opening and closing curly braces of my test function have the same parent (25), but 25 has the parent 27, which does not occur in the id column.
I realize that my function is all on one line, and not all functions have opening and closing curly braces, but I'd still like to understand what's going on here....
What does it mean when an item's parent does not exist in the id column?
Thanks,
Dan
> sessionInfo()
R Under development (unstable) (2013-10-18 r64076)
Platform: x86_64-apple-darwin10.8.0 (64-bit)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
More information about the R-devel
mailing list