crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V   1 2 3 >  
Ответить в данную темуНачать новую тему
> Qt и разбор математических выражений
AD
  опции профиля:
сообщение 23.9.2008, 12:35
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Может кто-нибудь подскажет, есть ли готовый, разборщик мат. выражений (в смысле, можно взять исходный код и вставить к себе в программу)? Нет желания изобретать велосипед, уверен, что это уже реализовывали. Хотелось бы увидеть такого рода код. Буду благодарен за любые ссылки.

Да, забыл указать: в результате хотелось бы иметь один из следующих вариантов:
На входе строка с математическим выражением:
На выходе
    - массив строковых выражений, содержащий либо операцию, либо операнд
    - массив структур такого рода
    [1 ОПЕРАНД ОПЕРАЦИЯ 2 ОПЕРАНД]
    - что-то наподобие первых двух....
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fsMark
  опции профиля:
сообщение 23.9.2008, 15:45
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 97
Регистрация: 23.4.2008
Из: г. Киров
Пользователь №: 155

Спасибо сказали: 10 раз(а)




Репутация:   1  


Лично я не очень понял что ты хочешь получить, точнее как с этим потом ты будешь бороться :)
Я для работы с математическими выражениями использовал обратную польскую запись, реализуется несложно, а работать с ней одно удовольствие. Может быть тебе поможет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 24.9.2008, 8:58
Сообщение #3


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

Спасибо сказали: 21 раз(а)




Репутация:   6  


Как насчет бизончика или QLalr или как там оно называется?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 24.9.2008, 9:00
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(trdm @ 24.9.2008, 9:58) *
Как насчет бизончика или QLalr или как там оно называется?

На мой взгляд для такой задачи использовать бизон, як, лекс, флекс и прочее как-то не очень! Да и потом килобайты кода раскапывать! Фу....
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 24.9.2008, 9:07
Сообщение #5


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

Спасибо сказали: 21 раз(а)




Репутация:   6  


Ну, это смотря с какой целью тебе разборшик нужен.

кстати чета: http://labs.trolltech.com/blogs/category/l...ompilers/qlalr/
не фига не открывается :((((
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 24.9.2008, 9:07
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(trdm @ 24.9.2008, 10:05) *
Ну, это смотря с какой целью тебе разборшик нужен.

Да в том-то и дело, что цели по-мелочам и использовать для этих мелочей такие крутые средства - роскошь!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 24.9.2008, 9:14
Сообщение #7


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

Спасибо сказали: 21 раз(а)




Репутация:   6  


не, я всетаки добрался :)
svn://labs.trolltech.com/svn/compilers/qlalr
Хоть эта ссылка работает. Буду посмотреть :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 25.9.2008, 10:43
Сообщение #8


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


После не очень тщательного, а главное, быстрого анализа всех возможностей, было решено реализовывать разбор самому. С этой задачей уже практически справился.

Сообщение отредактировал AD - 25.9.2008, 10:43
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 25.9.2008, 13:43
Сообщение #9


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

Спасибо сказали: 69 раз(а)




Репутация:   17  


А чё ты с этими "массивчиками" делать собираешся?
Может проще QScript использовать? :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 25.9.2008, 15:17
Сообщение #10


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Это уже не как массив. Сразу вычисляю. Короче, могу сказать для чего мне это надо! :) Я выкладывал проект, так там были нарисованы такие красявые графики зависимости одних параметров от времени или от расстояния. Значения параметров брались из лог-файлов. Но хотелось бы еще видеть графики зависимости параметров, которые вычисляются из полученных.
Формулы, как правило, довольно простые. А сложные формулы не пишутся, а пишутся имена функций, которые их вычисляют (таких очень немного, пока 4, но будет не более 8-10).
Вот пример формул, которые уже умею разбирать, практически:
diff_Hgnss_Hbaro    = (Hgnss - Hbaro) * raspd + Hbaro * raspd
diff_test111        = v_spd * Hra
Hmax            = GetHMax(lat / 30, lon + 10)
Haccuratly        = GetHAccuratly(lat, lon)
diff_mslAlt_Hmax    = msl_alt - Hmax
diff_mslAlt_Hacc    = msl_alt - Haccuratly
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V   1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 2:32