Парсер арифметических выражений...
Модератор: Модераторы разделов
-
dimaz-z
- Сообщения: 22
Парсер арифметических выражений...
Мне бы хотелось написать программу для построения графиков функций... это для закрепления изучаемого c++ ... но для всего этого нужен парсер... я представляю, что наработок по этому поводу уже достаточно... мне бы простенький парсер для начала, а потом поняв алгоритм, я сам его доработаю... я c++ знаю на начальном уровне (по сравнению с гуру...
) а вот книжек по алгоритмам неть
... помогите плз. буду рад всему: фрагментам кода, ссылкам и.т.п..... но хотелось бы иметь класс или пару функций парсера не очень больших по размеру, чтобы можно было полегче разобраться.... примерно не больше 500 строк
мне для начала хотя бы нужно, чтобы он умел производить операции /*-+ ^ ну и со скобками работал, а потом я доаботаю
помогите, плз.
-
Shura
- Сообщения: 1537
- Статус: Оказывается и без KDE есть жизнь
- ОС: FreeBSD 8.0-RC2
Re: Парсер арифметических выражений...
поищи книги Кнута. Очень хороший материал.
Еще есть пример парсера в книге Страуструпа "Язык С++"
Еще есть пример парсера в книге Страуструпа "Язык С++"
Rock'n'roll мертв © БГ
-
oav
- Бывший модератор
- Сообщения: 296
Re: Парсер арифметических выражений...
(dimaz-z @ Вторник, 25 Января 2005, 17:31) писал(а):Мне бы хотелось написать программу для построения графиков функций... это для закрепления изучаемого c++ ... но для всего этого нужен парсер... я представляю, что наработок по этому поводу уже достаточно... мне бы простенький парсер для начала, а потом поняв алгоритм, я сам его доработаю... я c++ знаю на начальном уровне (по сравнению с гуру...) а вот книжек по алгоритмам неть
... помогите плз. буду рад всему: фрагментам кода, ссылкам и.т.п..... но хотелось бы иметь класс или пару функций парсера не очень больших по размеру, чтобы можно было полегче разобраться.... примерно не больше 500 строк
мне для начала хотя бы нужно, чтобы он умел производить операции /*-+ ^ ну и со скобками работал, а потом я доаботаю
помогите, плз.
если хочешь действительно разобраться, понять и написать - то путь однозначно один - Ахо, Ульман, Сети. "Компиляторы. Принципы, технологии, инструменты". С++ сдесь ни причем.
Если необходимо написать программу, которая просто это делает, то :
http://www.boost.org/libs/spirit/index.html
почти все сэмплы к спириту - это как раз калькулятор мат. выражений.
зы. АхоУльман - это книга конечно
-
aLexx programmer
- Сообщения: 985
- Статус: Турук-Макто
- ОС: Gentoo -> Ubuntu
Re: Парсер арифметических выражений...
Эх... Помню, как на первом семестре первого курса одно из обязательных заданий было доработать имеющийся парсер, чтобы он понимал кроме "+", "-", "*" и скобок ещё и возведение в степень и деление... И чтоб он упрощал выражение до многочлена, где возможно... Вот это было весело... :new_rolleyes:
-
demongloom
- Сообщения: 454
- Статус: Добрый Демон
Re: Парсер арифметических выражений...
Ну это относительно гиморно решать. Я бы за такую задачку бы взялся, благо в школе теорию по такого рода теме проходили. Атоматы или как их там?
Если жизнь твоя порвется, тебе новую сошьют.
-
elide
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: Парсер арифметических выражений...
я такую фигню делал на bison.
в документации к нему как раз и есть очень даже неплохой расширяемый калькулятор.
с переменными, там... с функциями пользовательскими...
в документации к нему как раз и есть очень даже неплохой расширяемый калькулятор.
с переменными, там... с функциями пользовательскими...
слава роботам!
-
Jan2ary
- Бывший модератор
- Сообщения: 630
- Статус: Тщедушный очкарик
Re: Парсер арифметических выражений...
Я как-то начал писать, уже почти готово было, но пришлось переключиться...
Рекурсия - великая вещь!
Рекурсия - великая вещь!
Не шалю, никого не трогаю, починяю примус...