Теперь для ответа:
Как я могу проверить, что цикл находится на втором вхождении, это не третья, которую я пробовал,
blockquote>$i % 2 === 0
Для того, чтобы правила приоритета работали, сам терминал должен появиться в неоднозначном произведении. Таким образом, вы не можете группировать терминалы в не-терминалы и сохранять возможность использовать правила приоритета.
Я предпочитаю добавлять правила грамматики (постановления) для учета приоритета оператора. См. Мой ответ здесь .