![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
AD |
![]()
Сообщение
#1
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Может кто-нибудь подскажет, есть ли готовый, разборщик мат. выражений (в смысле, можно взять исходный код и вставить к себе в программу)? Нет желания изобретать велосипед, уверен, что это уже реализовывали. Хотелось бы увидеть такого рода код. Буду благодарен за любые ссылки.
Да, забыл указать: в результате хотелось бы иметь один из следующих вариантов: На входе строка с математическим выражением: На выходе
- массив структур такого рода [1 ОПЕРАНД ОПЕРАЦИЯ 2 ОПЕРАНД] - что-то наподобие первых двух.... |
|
|
fsMark |
![]()
Сообщение
#2
|
![]() Студент ![]() Группа: Участник Сообщений: 97 Регистрация: 23.4.2008 Из: г. Киров Пользователь №: 155 Спасибо сказали: 10 раз(а) Репутация: ![]() ![]() ![]() |
Лично я не очень понял что ты хочешь получить, точнее как с этим потом ты будешь бороться
![]() Я для работы с математическими выражениями использовал обратную польскую запись, реализуется несложно, а работать с ней одно удовольствие. Может быть тебе поможет. |
|
|
trdm |
![]()
Сообщение
#3
|
Дмитрий Трошин ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 575 Регистрация: 12.1.2008 Пользователь №: 68 Спасибо сказали: 21 раз(а) Репутация: ![]() ![]() ![]() |
Как насчет бизончика или QLalr или как там оно называется?
|
|
|
AD |
![]()
Сообщение
#4
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
trdm |
![]()
Сообщение
#5
|
Дмитрий Трошин ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 575 Регистрация: 12.1.2008 Пользователь №: 68 Спасибо сказали: 21 раз(а) Репутация: ![]() ![]() ![]() |
Ну, это смотря с какой целью тебе разборшик нужен.
кстати чета: http://labs.trolltech.com/blogs/category/l...ompilers/qlalr/ не фига не открывается ![]() |
|
|
AD |
![]()
Сообщение
#6
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
trdm |
![]()
Сообщение
#7
|
Дмитрий Трошин ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 575 Регистрация: 12.1.2008 Пользователь №: 68 Спасибо сказали: 21 раз(а) Репутация: ![]() ![]() ![]() |
не, я всетаки добрался
![]() svn://labs.trolltech.com/svn/compilers/qlalr Хоть эта ссылка работает. Буду посмотреть ![]() |
|
|
AD |
![]()
Сообщение
#8
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
После не очень тщательного, а главное, быстрого анализа всех возможностей, было решено реализовывать разбор самому. С этой задачей уже практически справился.
Сообщение отредактировал AD - 25.9.2008, 10:43 |
|
|
Tonal |
![]()
Сообщение
#9
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: ![]() ![]() ![]() |
А чё ты с этими "массивчиками" делать собираешся?
Может проще QScript использовать? ![]() |
|
|
AD |
![]()
Сообщение
#10
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Это уже не как массив. Сразу вычисляю. Короче, могу сказать для чего мне это надо!
![]() Формулы, как правило, довольно простые. А сложные формулы не пишутся, а пишутся имена функций, которые их вычисляют (таких очень немного, пока 4, но будет не более 8-10). Вот пример формул, которые уже умею разбирать, практически:
|
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 18.2.2025, 3:36 |