getParseData:equal_assign非终端丢失

时间:2018-12-13 12:51:22

标签: r parsing

在GetParseFunction()的输出中,缺少相等分配的相同父节点。那是对的吗? R语法中有一个非终结符,称为“ equal_assign”,我希望它是相等赋值的父节点。

R语法的提及部分(来自R源文件“ \ R-3.5.1 \ src \ main \ gram.y):

equal_assign : expr EQ_ASSIGN expr_or_assign { $$ = xxbinary($2,$1,$3); } ;

expr_or_assign : expr { $$ = $1; } | equal_assign { $$ = $1; } ;

示例:

test.R: foo = - 7

假设我们想通过getParseData检查test.R语法树:

getParseData(parse("test.R"))

结果:

  line1 col1 line2 col2 id parent     token terminal text
1     1    1     1    3  1      3    SYMBOL     TRUE  foo
3     1    1     1    3  3      0      expr    FALSE     
2     1    5     1    5  2      0 EQ_ASSIGN     TRUE    =
8     1    7     1    9  8      0      expr    FALSE     
4     1    7     1    7  4      8       '-'     TRUE    -
5     1    9     1    9  5      6 NUM_CONST     TRUE    7
6     1    9     1    9  6      8      expr    FALSE      

我想知道是否不应该有id 3、2、8的父节点,因为根节点实际上没有子节点。

这是一个错误还是我缺少什么?

0 个答案:

没有答案