|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
Пишем свой интерпретатор языка BASIC20.06.2009, 20:03. Показов 257370. Ответов 464
Метки нет (Все метки)
Благодаря форуму и Evg в частности интерпретатор развивается, потихоньку превращаясь в простенький интерпретатор QBASIC.
Некоторые из самых старых версий сохранились в теме и ссылки на них будут добавлены в это сообщение,а также ссылки на другие темы,связанные с этой. Репозиторий с проектом находится тут, там же есть возможность в браузере посмотреть историю ревизий (английский в логах весьма примитивен,комментарии и рекомендации можете писать в личку),а также скачать самый последний архив репозитория в формате .tar.gz Если кто-то пользуется Subversion,скачать исходники можно так:
Технический приём для формирования согласованных данных 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
Пишем свой чекер |
|
|
|
| 25.10.2009, 20:06 | |
|
Ребята, а исходники сего дела где-то есть?
Добавлено через 38 секунд Сорри, нашел. Добавлено через 1 минуту Тут: https://www.cyberforum.ru/misc... ts&t=41218 Но он там не один. Какой из них?
1
|
|
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
|
| 25.10.2009, 20:12 [ТС] | |
|
Ненене,это уже в прошлом давно,вот где лежат последние версии(/thread41218-page6.html#post252723) Пишем свой интерпретатор языка BASIC там всё написано,можно просто скачать архив в формате .tar http://basin.svn.sourceforge.n... z?view=tar И этот архив и будет самой последней версии,так как я не часто просто релизю архив на главной странице.
0
|
|
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
|
| 25.10.2009, 20:26 [ТС] | |
|
Отсюда качаются исходники http://www.libsdl.org/ бинарники для винды тоже есть,а если доступен репозиторий,то нужно просто найти пакет libsdl1.2-dev или что-то похожее.Ну и конечно если на винде,то нужно в опциях линкера указать путь к нужному .dll или что-то вроде(сам не пробовал)
Может,сделать компиляцию графики как опцию препроцессора,чтобы кому не надо графику,не парились и не качали пакеты?
0
|
|
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
||
| 25.10.2009, 20:42 [ТС] | ||
|
P.S Да,кстати,вот тут уже самое место подумать о GNU Autotools?Чтобы юзер получил все сообщения,чего не хватает..
0
|
||
|
|
||||
| 25.10.2009, 20:55 | ||||
|
Добавлено через 4 минуты
1
|
||||
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
|
| 25.10.2009, 21:00 [ТС] | |
|
У меня система основана на Debian,я просто нашёл в репозитории пакет libsdl1.2-dev,и все
сделал в файле #include <SDL/SDL.h> ,ну и линкеру путь указал.Ещё раз убеждаюсь,что нужно переделать структуру с Autotools. >Это уже можно через Autotools сделать Я тоже не знаю Autotools,придётся как-то разбираться. >Потому что rpm не поставился, ибо там миллион зависимостей надо, а из исходников у меня не скомилилось, т.к. требует какие-то X'овые инклюды, которые у меня не установлены Так что теперь,получается,на RedHat и других системах это вообще не поставится?
0
|
|
|
|
|
| 25.10.2009, 21:14 | |
|
niXman, а саму libsdl?
В общем в итоге всё поставил, как водится, через ж..у. Скачал бинарники в виде rpm'ов, то скачал установил rpm, ручками оттуда выдрал файлы и ручками скопировал Добавлено через 16 секунд В итоге чёрный экран-таки вылез Добавлено через 1 минуту По поводу autotools. Специально для этого со многими библиотеками ставится специальная программа. В данном случае имеется sdl-config, которая выдаст конфигурацию, где установлена libsdl (где библиотеки, где инклюды) с тем, чтобы нужный набор опций воткнуть в Makefile
1
|
|
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
||||||
| 26.10.2009, 04:39 [ТС] | ||||||
|
Добавил PRESET(ревизия 43),пока по умолчанию рисует на экране точку зелёным цветом,завтра займусь цветами уже.Но уже можно,даже не имея LINE,разрисовать экран линиями ))
Вот этот исходник уже работает
![]() Правда у меня там получается небольшая свалка в .h файле,я попробовал как-то сделать так,чтобы graphics.h не подключала value_class.h,конечно,нужно просто передавать массив из int-ов просто,я же сделал шаблоны,сам не знаю зачем,но я переделаю потом,уж больно не терпелось сделать хоть что-то.. Кстати,насчёт отображения всего дерева - я уже забыл,но ведь давно уже сделана отладка,просто заглянуть в debugger.h и поменять на DEBUG 1 и ещё STATEMENT_DBG 1 и тогда увидим дерево в файле data_file.dat или если SILENT 0 то в консоли.
0
|
||||||
|
|
|
| 26.10.2009, 08:30 | |
|
А что такое PRESET? Точку рисует вроде бы оператор PSET
> Кстати,насчёт отображения всего дерева - я уже забыл,но ведь давно уже сделана отладка,просто заглянуть в debugger.h и поменять на DEBUG 1 и ещё STATEMENT_DBG 1 Там вроде бы только имена statement'ов печатались Добавлено через 3 минуты > Вот этот исходник уже работает Только как-то он очень неторопливо работает....
1
|
|
|
|
|||||||||||
| 26.10.2009, 12:10 | |||||||||||
|
На работе возникают warning'и (gcc-4.1.2)
1
|
|||||||||||
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
||||||
| 26.10.2009, 17:43 [ТС] | ||||||
|
>А что такое PRESET? Точку рисует вроде бы оператор PSET
Есть такой оператор-и разница между PRESET и PSET только в выборе цвета по умолчанию >Там вроде бы только имена statement'ов печатались Да,верно,но можно ещё включить EXPRESSION_DBG 1 тогда уже будет видно более подробно. >Только как-то он очень неторопливо работает.... Ну да,наверное,ведь всё это написано начинающим,да и рисовать линию приходится по точкам,там же промежуточный процесс-каждый раз заново вычисляются параметры и вызывается 61440 раз функция graphics_PRESET,если бы,например,рисовать линию сразу,то вызывалась бы только одна функция-graphics_LINE и она уже вызывала рисование попиксельно.Я просто не знаю,как в SDL рисовать вырожденные полигоны с заданным углом наклона,попиксельно конечно будет медленнее.Так получается,что функция graphics_PRESET для этого исходника вызывается 61440 раз(если не ошибся) Насчёт варнингов-функцию c_itoa нужно ещё доделывать,она умеет работать только с int-ами..
0
|
||||||
|
|
|||
| 26.10.2009, 20:02 | |||
|
Добавлено через 8 минут
1
|
|||
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
||||||
| 26.10.2009, 20:22 [ТС] | ||||||
|
>Я исходники не смотрел, но пока видится, что для начала в этом надо разобраться. А в чём официальный смысл SDL, если даже линию без поллитры не нарисуешь?
Да и сам не знаю,уверен что там всё можно,там и с OpenGl работа есть,просто нужно постоянно разбираться с библиотекой.По незнанию предмета я мог и не то что нужно выбрать.На официальном сайте пишут
0
|
||||||
|
|
|
| 26.10.2009, 21:13 | |
|
Если низкоуровневый - то скорее всего самому. Но всё равно как-то медленно. В общем ты хотел что-то новенького - ты его получил
Может заодно и полезное руководство по SDL напишешь
1
|
|
| 26.10.2009, 21:13 | |
|
пишем свой троян с нуля Пишем свой класс, спецификатор доступа protected Интерпретатор небольшого языка программирования на С++ Не удается откомпилировать интерпретатор М-языка
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2.
Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
|
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её.
Всё это стресс конечно. Почему?. . .
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|