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

<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>

Возможно не правильно сделала ФБН. Но в общем, унарный минус может быть в самом начале выражения, и после операций *, /, +, -.
Сделана только поддержка унарного минуса.

https://github.com/kro-star/pascal.js-in...

Исправила поддержку нескольких унарных минусов подряд.

Найти всё там же:
https://github.com/kro-star/pascal.js-in...

Формы Бекуса-Наура для исправленного варианта:

<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> | <UnarMinus> )

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

Новый вариант унарного минуса.

https://github.com/kro-star/pascal.js-intro/tree/newUnarMinus