В выводе функции 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; }
;
Пример:
тест.R: foo = - 7
Предположим, мы хотели бы изучить синтаксическое дерево test.R с помощью getParseData:
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
Интересно, не должно ли быть родительского узла с идентификаторами 3, 2, 8, потому что на самом деле нет дочерних узлов корневого узла.
Этоошибка или я что-то упустил?