Задача №1. Реализуйте поддержку унарного минуса
Primary tabs
<Digit> ::= [0-9] <UnsignedInteger> ::= "0" | ([1-9] <Digit>*) <Multiplier> ::= <UnsignedInteger> <Multiplication> ::= ( <Multiplier> | <Multiplication> | <Division> | <UnarMinus>) "*" (<Multiplier> | <UnarMinus>) <Division> ::= ( <Multiplier> | <Multiplication> | <Division> | <UnarMinus> ) "/" (<Multiplier> | <UnarMinus>) <Term> ::= <Multiplier> | <Multiplication> | <Division> | <UnarMinus> <Addition> ::= ( <Term> | <Addition> | <Subtraction> ) "+" <Term> <Subtraction> ::= ( <Term> | <Addition> | <Subtraction> ) "-" <Term> <Expression> ::= <Term> | <Addition> | <Subtraction> <UnarMinus> ::= "-" <Multiplier>
Возможно не правильно сделала ФБН. Но в общем, унарный минус может быть в самом начале выражения, и после операций *, /, +, -.
Сделана только поддержка унарного минуса.
- Log in to post comments
- 981 reads
kro-star
Sat, 04/20/2024 - 16:58
Permalink
Исправила поддержку
Исправила поддержку нескольких унарных минусов подряд.
Найти всё там же:
https://github.com/kro-star/pascal.js-in...
math2
Mon, 04/22/2024 - 17:50
Permalink
Формы Бекуса-Наура для
Формы Бекуса-Наура для исправленного варианта:
kro-star
Thu, 04/25/2024 - 12:10
Permalink
<Digit> ::= [0-9]
Новый вариант унарного минуса.
https://github.com/kro-star/pascal.js-intro/tree/newUnarMinus