Задача 1: Реализуйте поддержку унарного минуса
Primary tabs
Задача 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+(когда ожидается очередной "символ", т.е. выражение не завершено)
- Log in to post comments
- 632 reads
maxheong54
Mon, 08/05/2024 - 15:47
Permalink
переписал ФБН
переписал ФБН