Задача 1: Реализуйте поддержку унарного минуса

Задача 1: Реализуйте поддержку унарного минуса

Как именно выполнять:

1. Составить ФБН для выражения поддержку которого требуется реализовать, основываясь на той схеме, которая уже реализована в репозитории, пришлите получившуюся схему на проверку
2. Создаем в своем репозитории новую ветку, подходящем названием напр. unminus
3. Проверьте, что тесты для унарного минуса изначально не проходят (код и команда изначально есть в репозитории, для последующих задач мы уже будем добавлять их сами):

    npm run test_unminis

-- файлы тестов, которые запускает эта команда, лежат в диретоктории node_modules/.bin/jest tests/__tests__/task1_unminus

По мере решения задачи (см. слующий пункт) добавиваемся, чтобы все проверки проходили успешно.
4. Выполнить реализацию, опираясь на составленную ФБН

Составил слудующую ФБН:

<Digit> ::= [0-9]
<UnsignedInteger> ::= "0" | ([1-9] <Digit>*)
<Multiplier> ::= <UnsignedInteger> 
<UnaryMinus> ::= "-" <Term>
<Multiplication> ::= ( <Multiplier> | <Multiplication> | <Division> ) "*" (<Multiplier> | <UnaryMinus>)
<Division> ::= ( <Multiplier> | <Multiplication> | <Division> ) "/" (<Multiplier> | <UnaryMinus>)
<Term> ::= <Multiplier> | <Multiplication> | <Division> | <UnaryMinus>
<Addition> ::= ( <Term> | <Addition> | <Subtraction> ) "+" <Term>
<Subtraction> ::= ( <Term> | <Addition> | <Subtraction> ) "-" <Term>
<Expression> ::= <Term> | <Addition> | <Subtraction>

Дополнительное задание было реализовано в исходном коде

Добавить фиксацию ошибок для случаев типа:

3+2+

(когда ожидается очередной "символ", т.е. выражение не завершено)

Ссылка на github

переписал ФБН

<Digit> ::= [0-9]
<UnsignedInteger> ::= "0" | ([1-9] <Digit>*)
<Multiplier> ::= <UnsignedInteger> | <UnaryMinus>
<UnaryMinus> ::= "-" <Multiplier> 
<Multiplication> ::= ( <Multiplier> | <Multiplication> | <Division> ) "*" <Multiplier> 
<Division> ::= ( <Multiplier> | <Multiplication> | <Division> ) "/" <Multiplier> 
<Term> ::= <Multiplier> | <Multiplication> | <Division> | <UnaryMinus>
<Addition> ::= ( <Term> | <Addition> | <Subtraction> ) "+" <Term>
<Subtraction> ::= ( <Term> | <Addition> | <Subtraction> ) "-" <Term>
<Expression> ::= <Term> | <Addition> | <Subtraction>