Глава 4 Разбор и вычисление выражений
Глава 4
Разбор и вычисление выражений
Перед программистом нередко возникает задача вычисления арифметических или иных выражений, не известных на этапе компиляции программы. Готовых средств для этого в Delphi нет. В Интернете можно найти компоненты и законченные примеры вычисления выражений, но нередко требуется создать что-то свое. В этой главе мы рассмотрим способы программного разбора и вычисления арифметических выражений. Кроме самих примеров будут изложены основы теории синтаксического анализа, с помощью которой эти примеры написаны. Эти сведения не только помогут лучше понять приведенные примеры, но и позволят легко написать код для синтаксического разбора любых выражений, которые подчиняются некоторому формальному описанию синтаксиса.
Синтаксический анализатор мы будем создавать поэтапно, переходя от простых примеров к сложным. Сначала научимся распознавать вещественное число и напишем простейший калькулятор, который умеет выполнять четыре действия арифметики над числами без учета приоритета операций. Затем наша программа научится учитывать приоритет этих операций, а чуть позже — использовать скобки для изменения этого приоритета. Далее калькулятор обретет способность работать с переменными, вычислять функции и возводить в степень, т. е. станет вполне полноценным. И на последнем этапе мы добавим лексический анализатор — средство, которое формализует разбор выражений со сложной грамматикой и тем самым существенно облегчает написание синтаксических анализаторов.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
12.4. Разбор нашего сценария в среде FrontPage
12.4. Разбор нашего сценария в среде FrontPage Созданный сценарий состоит всего из четырех строк кода, которые выводят в окне браузера десять сообщений Привет, мир!!!. Все остальное – это код страницы на языке HTML. Далее мы немного поэкспериментируем со сценарием.Для разработки
2.3. Разбор опций: getopt() и getopt_long()
2.3. Разбор опций: getopt() и getopt_long() Примерно в 1980-х группа поддержки Unix для System III в AT&T заметила, что каждая программа Unix использовала для разбора аргументов свои собственные методики. Чтобы облегчить работу пользователей и программистов, они разработали большинство из
8.4. Разбор полетов
8.4. Разбор полетов В этом разделе некоторые наиболее посещаемые проекты Рунета будут рассмотрены с точки зрения клиентской оптимизации. Основной целью каждого проводимого ниже анализа является показать на рабочих примерах, каким именно образом можно ускорить загрузку
22.3.2. Разбор имен файлов
22.3.2. Разбор имен файлов Абсолютно обычным действием для привилегированных приложений является предоставление доступа к файлам ненадежным пользователям и разрешение этим пользователям передавать имена файлов, к которым необходим доступ. Хорошим примером служит
5. Разбор успеха по косточкам
5. Разбор успеха по косточкам В прошлом у вас, вероятно, были проблемы, но сейчас вы добились результата. Путь к успеху можно оформить в виде отдельного кейса. Разложите по полочкам, как вы добились
14.2.1. Разбор флагов в командной строке
14.2.1. Разбор флагов в командной строке Для разбора командной строки чаще всего применяется библиотека getoptlong (библиотека getopts.rb, обладающая менее развитой функциональностью, считается устаревшей). Она понимает однобуквенные и длинные флаги и распознает двойной дефис (--)
11.12. Синтаксический разбор XML с помощью NSXMLParser
11.12. Синтаксический разбор XML с помощью NSXMLParser Постановка задачи Необходимо выполнить синтаксический разбор (парсинг) фрагмента кода на языке XML или
Василий Щепетнёв: Разбор полётов перед стартом
Василий Щепетнёв: Разбор полётов перед стартом Что ж, время принять позу успешного прорицателя и начать собирать лавры. Если дадут. Хотя вряд ли. Лавры полагаются за сбывшиеся предсказания приятного толка, например "Вас опять выберут президентом", "Вы непременно получите
Приложение 1. Разбор задачи для собеседования с программистами
Приложение 1. Разбор задачи для собеседования с программистами Итак, разбор задачи.Тест проверяет достижения соискателя скорее по п. 2 перечня требований, приведенного перед задачей, чем по п. 3 (если вы, конечно, еще помните, что там написано) Одновременно вы получаете