Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
||||||||||||||||||||||||||||||||||||||||||||||
1 | ||||||||||||||||||||||||||||||||||||||||||||||
Пишем свой интерпретатор языка BASIC20.06.2009, 20:03. Показов 242567. Ответов 464
Метки нет (Все метки)
Благодаря форуму и Evg в частности интерпретатор развивается, потихоньку превращаясь в простенький интерпретатор QBASIC.
Некоторые из самых старых версий сохранились в теме и ссылки на них будут добавлены в это сообщение,а также ссылки на другие темы,связанные с этой. Репозиторий с проектом находится тут, там же есть возможность в браузере посмотреть историю ревизий (английский в логах весьма примитивен,комментарии и рекомендации можете писать в личку),а также скачать самый последний архив репозитория в формате .tar.gz Если кто-то пользуется Subversion,скачать исходники можно так: Код
svn co https://basin.svn.sourceforge.net/svnroot/basin basin Технический приём для формирования согласованных данных https://www.cyberforum.ru/c-linux/thread46096.html Вопрос по svn (Subversion) Создание системы тестирования ПО. Вопрос про разные реализации бэйсиков Можно ли выразить порядковый номер элемента массива через индексы? [C++] Какие флаги указать линкеру для компиляции программы? Как можно определить переменную в файле configure.in,чтобы её можно было использовать в Makefile? Странный SIGSEGV, или что зависит от порядка написания интерфейса класса https://www.cyberforum.ru/c-linux/thread61324.html Альтернативная версия интерпретатора от Evg на C Это простая реализация разбора выражений, написанная Evg на C: Представление выражения в двоичном дереве ***************** Первое сообщение: ***************** Задание(Страуструп,из книги,по готовому коду): Введите программу калькулятора и заставьте её работать.Например,при вводе
LexicalAnalyzer.h
LexicalAnalyzer.cpp
main.cpp
Анализатор-то работает,но конечное значение не вычисляется.Более того,если вводим
Добавлено через 2 часа 5 минут 30 секунд Пришлось решать влоб с дебаггером.У Страуструпа опечатка (или намеренная ошибка,что более вероятно ) Вот в этом куске кода в функции get_token():
Добавлено через 16 минут 19 секунд И ещё опечатка была
31
|
20.06.2009, 20:03 | |
Ответы с готовыми решениями:
464
Пишем свой интерпретатор языка BASIC Пишем свой strlen Пишем свой чекер пишем свой троян с нуля |
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
|
21.03.2010, 22:38 [ТС] | 341 |
1
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
|
21.03.2010, 22:42 [ТС] | 343 |
Понял.
Пользуюсь Ubuntu 8.04 64-битной Для порядка тогда надо мне в configure.in добавить какую-то проверку на версию Qt для этого интерфейса.Т.е. если этой версии нет,то выдаём предупреждение и собираем что можно)
1
|
591 / 357 / 16
Регистрация: 06.02.2009
Сообщений: 1,386
|
|
22.03.2010, 15:38 | 346 |
Версия 4.5.2 нужна только лишь из-за кнопочек на вкладках. Так что можно этот код не включать если версия ниже. Функциональность сохраняется
2
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
|
22.03.2010, 21:36 [ТС] | 347 |
Я так сразу не вьеду,что там выбрасывать из кода именно,собери,если можно,рабочую версию,чтобы компилилось.
Так .ts это файлы переводов? А что такое .qm? Добавлено через 8 минут О! а лучше сделай #define QT_4.5.2 или похожий,и пусть этот код аккуратно выбрасывается с помощю этого define-а,тогда я смогу у себя в configure сделать опцию по которой идет проверка версии Qt (по крайней мере,я могу попробовать),и тогда всё это можно будет делать автоматом.
1
|
591 / 357 / 16
Регистрация: 06.02.2009
Сообщений: 1,386
|
|
23.03.2010, 13:25 | 354 |
Да, .ts это файлы перевода, но в формате XML. .qm это скомпилированные файлы перевода, которые и используются в программе. В первые можно вносить изменения по ходу разработки программы, вторые создаются только на конечном этапе.
Я поставил условие на номер версии. Теперь программа должна скомпилироваться с версией 4.4.
1
|
23.03.2010, 13:32 | 355 |
У меня не компилится. Правда я не знаю, как понять, что за версия qt у меня установлена
Код
g++ -c -pipe -O2 -march=pentium3 -mtune=pentium4 -pipe -fno-strict-aliasing -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.moc -I.ui -o .obj/main.o main.cpp In file included from basinmainwindow.h:9, from basinapplication.h:6, from main.cpp:4: textedit.h:4:26: error: QPlainTextEdit: No such file or directory В /usr/lib/qt4 лежат файлы с суффиксами 4.3.5
0
|
591 / 357 / 16
Регистрация: 06.02.2009
Сообщений: 1,386
|
|
23.03.2010, 13:45 | 357 |
Evg, qplaintextedit ввели в 4.4. Я понял что проблема более глобальна. Сейчас подправлю все что смогу
1
|
23.03.2010, 13:57 | 360 |
Я думал ты имел в виду дистрибутив Qt
У нас gentoo самопальной админской сборки. Выдача по uname тебе ничего не скажет
1
|
23.03.2010, 13:57 | |
23.03.2010, 13:57 | |
Помогаю со студенческими работами здесь
360
Пишем свой класс, спецификатор доступа protected Интерпретатор небольшого языка программирования на С++ Не удается откомпилировать интерпретатор М-языка Интерпретатор музыки стандарта BASIC PLAY на С++ Написать интерпретатор программного языка -помощь Интерпретатор/компилятор ассемблер-подобного языка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |