Russian Qt Forum

Qt => Общие вопросы => Тема начата: ruzik от Февраль 17, 2011, 21:16



Название: Qt парсер
Отправлено: ruzik от Февраль 17, 2011, 21:16
А есть ли в Qt элемент "парсер", то ему посылаешь строку примера типа 1+2+3, а он считает ответ, или только свой прикручивать, в током случае подскажите пожалуйста хороший парсер(а лучше скиньте код, если не жалко)


Название: Re: Qt парсер
Отправлено: asvil от Февраль 17, 2011, 21:35
QtScript::QScriptEngine::eval(<любой ecmascript>).


Название: Re: Qt парсер
Отправлено: ruzik от Февраль 17, 2011, 22:09
А можете показать хоть один пример и можно ли обойтись без помощи скриптов и тп 


Название: Re: Qt парсер
Отправлено: ieroglif от Февраль 17, 2011, 23:34
А можете показать хоть один пример и можно ли обойтись без помощи скриптов и тп 
понятия "парсер" и "без скриптов" как-то очень слабо совместимы.
то, что ты будешь парсить - это скрипт.
так почему бы не воспользоваться родным Qt движковым скриптом?
первые же и простые примеры на найдёшь в манах по QScriptEngine


Название: Re: Qt парсер
Отправлено: merke от Февраль 18, 2011, 04:14
у меня есть код парсера основанный на венгерской нотации.После обеда скину...


Название: Re: Qt парсер
Отправлено: merke от Февраль 18, 2011, 04:33
Выкладываю. см. во вложениях... :)


Название: Re: Qt парсер
Отправлено: ruzik от Февраль 18, 2011, 09:25
Огромное спасибо


Название: Re: Qt парсер
Отправлено: ruzik от Февраль 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вском, не подскажите что нужно подключить


Название: Re: Qt парсер
Отправлено: ruzik от Февраль 18, 2011, 18:31
Нашел в чем проблема
void toupper(char upper[], const char str[])
{
    int i = -1;
    do
    {
        i++;
        upper = toupper(str);
    }
    while (str != '\0');

}
Рекурсивная функция, но почему VS ругается


Название: Re: Qt парсер
Отправлено: BRE от Февраль 18, 2011, 18:35
Рекурсивная функция, но почему VS ругается
Потому, что эта функция принимает два аргумента, а ты передаешь один.


Название: Re: Qt парсер
Отправлено: ruzik от Февраль 18, 2011, 18:42
И вправду, а не подскажите что можно вставить в качестве второго аргумента, исходя из кода


Название: Re: Qt парсер
Отправлено: ruzik от Февраль 19, 2011, 10:20
И еще sprintf не опознает, не подскажите что нужно подключить


Название: Re: Qt парсер
Отправлено: ruzik от Февраль 19, 2011, 10:41
Александр не подскажите как вы изменили код, что бы он работал и ошибки не выдавались


Название: Re: Qt парсер
Отправлено: ruzik от Февраль 19, 2011, 18:52
А не у кого нету другого парсера, а то этот с ошибками компилируется


Название: Re: Qt парсер
Отправлено: ieroglif от Февраль 19, 2011, 20:55
не взрывай людям моск - тебе уже давно указали направление копания.
так почему бы не воспользоваться родным Qt движковым скриптом?
первые же и простые примеры на найдёшь в манах по QScriptEngine