> require( parser )
> p <- parser( "/tmp/g.R" )
> p
expression(f <- function(x = 3) {
    rnorm(10) + runif(10)
})
attr(,"data")
   line1 col1 byte1 line2 col2 byte2 token id parent           token.desc terminal                 text
1      1    0     0     1   20    20   291  1    -66      ROXYGEN_COMMENT     TRUE #' a roxygen comment
2      2    0     0     2    1     1   263  4      7               SYMBOL     TRUE                    f
3      2    2     2     2    4     4   265  6     66          LEFT_ASSIGN     TRUE                   <-
4      2    0     0     2    1     1    77  7     66                 expr    FALSE                     
5      2    5     5     2   13    13   264  9     65             FUNCTION     TRUE             function
6      2   13    13     2   14    14    40 10     65                  '('     TRUE                    (
7      2   15    15     2   16    16   292 12     65       SYMBOL_FORMALS     TRUE                    x
8      2   17    17     2   18    18   293 14     65           EQ_FORMALS     TRUE                    =
9      2   19    19     2   20    20   261 16     17            NUM_CONST     TRUE                    3
10     2   19    19     2   20    20    77 17     65                 expr    FALSE                     
11     2   21    21     2   22    22    41 19     65                  ')'     TRUE                    )
12     2   22    22     2   23    23   123 21     62                  '{'     TRUE                    {
13     4    8     1     4   27    20   289 26     62              COMMENT     TRUE  # a regular comment
14     5    8     1     5   13     6   296 29     31 SYMBOL_FUNCTION_CALL     TRUE                rnorm
15     5   13     6     5   14     7    40 30     38                  '('     TRUE                    (
16     5    8     1     5   13     6    77 31     38                 expr    FALSE                     
17     5   14     7     5   16     9   261 32     33            NUM_CONST     TRUE                   10
18     5   14     7     5   16     9    77 33     38                 expr    FALSE                     
19     5   17    10     5   18    11    41 35     38                  ')'     TRUE                    )
20     5    8     1     5   18    11    77 38     54                 expr    FALSE                     
21     5   19    12     5   20    13    43 40     54                  '+'     TRUE                    +
22     5   21    14     5   26    19   296 42     44 SYMBOL_FUNCTION_CALL     TRUE                runif
23     5   26    19     5   27    20    40 43     52                  '('     TRUE                    (
24     5   21    14     5   26    19    77 44     52                 expr    FALSE                     
25     5   28    21     5   30    23   261 46     47            NUM_CONST     TRUE                   10
26     5   28    21     5   30    23    77 47     52                 expr    FALSE                     
27     5   31    24     5   32    25    41 49     52                  ')'     TRUE                    )
28     5   21    14     5   32    25    77 52     54                 expr    FALSE                     
29     5    8     1     5   32    25    77 54     62                 expr    FALSE                     
30     7    0     0     7    1     1   125 60     62                  '}'     TRUE                    }
31     2   22    22     7    1     1    77 62     65                 expr    FALSE                     
32     2    5     5     7    1     1    77 65     66                 expr    FALSE                     
33     2    0     0     7    1     1    77 66      0                 expr    FALSE                     
attr(,"file")
[1] "/tmp/g.R"
attr(,"encoding")
[1] "unknown"
attr(,"class")
[1] "parser"