Подсказка 1: Унарный минус для сумм и сложений. Формы Бэкуса-Наура

Напомним задачу по формам Бэкуса-Наура:

Для описания выражений вида:

7
1+23-4+6-7+8
5+2

(суммы и разности целых чисел, количеством чисел от одного и более)

Можно использовать форму:

<Cifra> ::= [0-9]
<CeloeChislo> ::= "0" | ([1-9] <Cifra>*)
<Virazhenie> ::= <CeloeChislo> (("+" | "-") <CeloeChislo>)*


Задача:
Модифицируйте это выражение таким образом, чтобы была возможна поддержка, т.н. "Унарного минуса" (т.е. минуса который может быть перед числом, даже если оно одно или если уже есть знак другой операции после предыдущего числа), т.е. чтобы форма соответствовала выражениям:

-3
-1+-23-4
-5+-2+8

и при этом по-прежнему не соответствовала выражениям типа:

+3
+1++22-4
+5+2

Подсказка: введите еще одну нетерминальную форму "Слагаемое":
Так, что суммарное описание примет вид:

<Cifra> ::= [0-9]
<CeloeChislo> ::= "0" | ([1-9] <Cifra>*)
<Slogaemoe> ::=  // ваше описание слагаемого
<Virazhenie> ::= <Slogaemoe> (("+" | "-") <Slogaemoe>)*

и постарайтесь описать это слагаемое.

Key Words for FKN + antitotal forum (CS VSU):