Russian Qt Forum
Ноябрь 26, 2024, 12:30 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt парсер  (Прочитано 7384 раз)
ruzik
Гость
« : Февраль 17, 2011, 21:16 »

А есть ли в Qt элемент "парсер", то ему посылаешь строку примера типа 1+2+3, а он считает ответ, или только свой прикручивать, в током случае подскажите пожалуйста хороший парсер(а лучше скиньте код, если не жалко)
Записан
asvil
Гость
« Ответ #1 : Февраль 17, 2011, 21:35 »

QtScript::QScriptEngine::eval(<любой ecmascript>).
Записан
ruzik
Гость
« Ответ #2 : Февраль 17, 2011, 22:09 »

А можете показать хоть один пример и можно ли обойтись без помощи скриптов и тп 
Записан
ieroglif
Гость
« Ответ #3 : Февраль 17, 2011, 23:34 »

А можете показать хоть один пример и можно ли обойтись без помощи скриптов и тп 
понятия "парсер" и "без скриптов" как-то очень слабо совместимы.
то, что ты будешь парсить - это скрипт.
так почему бы не воспользоваться родным Qt движковым скриптом?
первые же и простые примеры на найдёшь в манах по QScriptEngine
Записан
merke
Гость
« Ответ #4 : Февраль 18, 2011, 04:14 »

у меня есть код парсера основанный на венгерской нотации.После обеда скину...
Записан
merke
Гость
« Ответ #5 : Февраль 18, 2011, 04:33 »

Выкладываю. см. во вложениях... Улыбающийся
Записан
ruzik
Гость
« Ответ #6 : Февраль 18, 2011, 09:25 »

Огромное спасибо
Записан
ruzik
Гость
« Ответ #7 : Февраль 18, 2011, 18:30 »

А не знаете почему вылетают ошибки

Ошибка   1   error C2660: toupper: функция не принимает 1 аргументов   c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\parser\parser\variablelist.cpp   119
Ошибка   2   error C3861: snprintf: идентификатор не найден   c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\parser\parser\parser.cpp   69
Ошибка   3   error C3861: snprintf: идентификатор не найден   c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\parser\parser\parser.cpp   75
Ошибка   4   error C3861: snprintf: идентификатор не найден   c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\parser\parser\parser.cpp   79
Пробовал и в консольном приложении и в guiвском, не подскажите что нужно подключить
Записан
ruzik
Гость
« Ответ #8 : Февраль 18, 2011, 18:31 »

Нашел в чем проблема
void toupper(char upper[], const char str[])
{
    int i = -1;
    do
    {
        i++;
        upper = toupper(str);
    }
    while (str != '\0');

}
Рекурсивная функция, но почему VS ругается
Записан
BRE
Гость
« Ответ #9 : Февраль 18, 2011, 18:35 »

Рекурсивная функция, но почему VS ругается
Потому, что эта функция принимает два аргумента, а ты передаешь один.
Записан
ruzik
Гость
« Ответ #10 : Февраль 18, 2011, 18:42 »

И вправду, а не подскажите что можно вставить в качестве второго аргумента, исходя из кода
Записан
ruzik
Гость
« Ответ #11 : Февраль 19, 2011, 10:20 »

И еще sprintf не опознает, не подскажите что нужно подключить
Записан
ruzik
Гость
« Ответ #12 : Февраль 19, 2011, 10:41 »

Александр не подскажите как вы изменили код, что бы он работал и ошибки не выдавались
Записан
ruzik
Гость
« Ответ #13 : Февраль 19, 2011, 18:52 »

А не у кого нету другого парсера, а то этот с ошибками компилируется
Записан
ieroglif
Гость
« Ответ #14 : Февраль 19, 2011, 20:55 »

не взрывай людям моск - тебе уже давно указали направление копания.
так почему бы не воспользоваться родным Qt движковым скриптом?
первые же и простые примеры на найдёшь в манах по QScriptEngine
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 21.