Задача 3: Поддержка переменных, организация их хранения
Primary tabs
Задача 3: Поддержка переменных, организация их хранения
Сначала:
• Решите задачу №6 -- составьте ФБН для поддержки переменных в выражении
• Создаем в своем репозитории новую ветку для реализации задачи со скобками - ответвляемся от созданной, для решения предыдущей задачи.
• Выполнить реализацию, опираясь на составленную ФБНДалее требования к реализации:
1. Добавить хранилище переменных - в JS для этого можно использовать объект (link is external)
2. При обработке операции присваивания записывайте значение переменной в хранилище
3. Добавляем тесты по мере решения задачи (и до и в процессе решения ;)
4. Сообщать об ошибке (указав строку и номер символа в строке, в которой наблюдается проблема), если в выражении есть неинициализированная переменная (если подзабыл что такое "инициализация" - см. сюда ;))
Написал ФБН
<Digit> ::= [0-9] <UnsignedInteger> ::= "0" | ([1-9] <Digit>*) <Variable> ::= [a-z]+ <Multiplier> ::= <UnsignedInteger> | <UnaryMinus> | "(" <Expression> ")" | <Variable> <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> ::= <Variable> "=" <Expression> | (<Term> | <Addition> | <Subtraction>)
- Log in to post comments
- 249 reads