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

Задача: https://fkn.ktu10.com/?q=node/16471
Сделала так же обработку формул вида 4+5+

Решение 1

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

Этот вариант работает только на лексическом анализаторе.
Пришлось повозиться с вызовом функций nextCh() и написанной мной prevCh(). Так как при вызове nextCh() идёт что следующий символ мы тебе покажем потом, а сейчас бери этот символ. А при следующем вызове prevCh() - о, нам нужно было брать следующий символ, поэтому бери этот, а предыдущий мы тебе потом покажем. Короче я запуталась, пришлось распутываться и ставить функции в нужные места, чтобы в итоге обработка строки была правильной.

Решение 2

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

Изменила файлы sintaxAnalyzer.js и lexicalAnalyzer.js

Для обоих решений:

<Digit> ::= [0-9]
<UnsignedInteger> ::= "0" | (( "-" [1-9] <Digit>* | [1-9] <Digit>*)
<Multiplier> ::= <UnsignedInteger> 
<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>

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

vedro-compota's picture

Сделала так же обработку формул вида 4+5+

что это за такой вид? по-идее плюс в конце не является корректной строкой

_____________
матфак вгу и остальная классика =)

Да, не является корректной строкой. Поэтому и выдаёт ошибку - неожиданное окончание строки.