У меня есть грамматика ANTLR с атрибутом, представляющим логические выражения в префиксной нотации, и у меня есть следующее правило синтаксического анализатора:
logicalExpression returns [StringBuilder val]: {
$val = new StringBuilder();
} logicalAtom {
$val.append($logicalAtom.val);
}
| logicalBinaryOp logicalExpression logicalExpression {
$val.append($logicalExpression.val);
$val.append(" " + $logicalBinaryOp.val + " ");
$val.append($logicalExpression.val);
}
Как видите, я хочу перевести нотацию префикса в infix. Однако приведенный выше код неверен, так как я не могу различить guish между двумя logicalExpression
экземплярами. Интересно, есть ли какие-то особенности, отличающие одно от другого? Заранее спасибо!