Это должно быть довольно просто, но я не могу найти соответствующую информацию в документации.
У меня есть запрос sparql, и у меня есть antlr грамматика, которая производит для него AST, я хотел бы произвестидругой запрос sparql, изменяющий только его часть, соответствующий определенному правилу в грамматике и, следовательно, конкретному узлу в AST.
Я хочу удалить это поддерево (или текст) из дерева, преобразовать егов другое дерево (или текст), поместите его обратно в исходное (большее) дерево (или текст) и получите полный текст для нового запроса, который в целом равен исходному.Я надеюсь, что вам не нужны подробности о преобразовании, которое нужно перенести, потому что это не просто и не кратко объяснить.
В (вроде) псевдокоде это будет что-то вроде:
prog returns [String res]
: ^([^nodeICare] e*) {($res += $e.text;)*}
| ^(nodeICare e) {$res += (transformer.transform($e)).text;}
Должен быть какой-то простой способ сделать это, не так ли?
Большое спасибо.