powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Языки программирования семейства Pascal [закрыт для гостей] / Creating Gear: An interpreter written in Free Pascal
120 сообщений из 120, показаны все 5 страниц
Creating Gear: An interpreter written in Free Pascal
    #518015
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Начал её серьезно читать и собственно делать сам интерпретатор.
Книга достойна отдельной темы.
На всякий, еще раз ссылка для скачивания https://cloud.mail.ru/public/1KND/xbMLrR7a4

Буду считать это, как сейчас модно говорить, "Codnig kata".
Да и просто развлечение. Даже сделал проект на гитхабе )
Кое что приходится менять, но по мелочи.

Чем больше ее читаю, тем больше нравится паскаль :)
Хорошая идея, что структуру класса можно сразу посмотреть в сжатом виде.
На шарпе приходится листать портянки, чтобы понять что собственно класс делает. Ну или сворачивать, но это действия предпринимать.

Зацените мою цветовую схему в делфях )
Снимок.PNG
А во free pascal оказывается есть всякие приятные мелочи типа += и присваивания в блоке var.
...
Изменено: 26.08.2023, 22:31 - Неуловимый Джо
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #519821
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Программа растет, добавляются тесты...
Проверяю однострочные и многострочные комментарии.
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #521521
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Ключевые слова и идентификаторы.
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #521525
Гарыныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей кроме]
[spoiler][size=4][b]Клоп, жидок ты обоссаный, просто пройди нахуй![/b][/size] [:nahui][/spoiler]
Неуловимый Джо [игнорируется] 

а можно вопрос? : зачем делаешь интерпретатор и интерпретатор чего? ( извини, если нубский вопрос)
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #521530
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Гарыныч  30.08.2023, 15:40
[игнорируется]
Неуловимый Джо [игнорируется] 

а можно вопрос? : зачем делаешь интерпретатор и интерпретатор чего? ( извини, если нубский вопрос)
Coding kata.

Ката программирования )
Просто тренировка, ну и поднять свой уровень в паскале, потому что сейчас на нем работаю.

Интерпретатор, там какой-то свой язык, автор назвал его Gear.
Я его изменю, мне не нужны операторы битовых сдвигов.
Логические операторы & | ! ~ заменю на человеческие and, or и тд

Короче просто как развлечение по вечерам.
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Creating Gear: An interpreter written in Free Pascal
    #521543
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
на последней картинке меня интересовало прочитает ли косую черту после комментария /**// ну и разрыв строки в комментарий добавил для проверки.
в итоге строка выглядит абракадаброй.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #521552
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Гарыныч  30.08.2023, 15:40
[игнорируется]
и интерпретатор чего?
По такой теме книга с примерами на паскале это сейчас редкость.
Снимок.PNG
...
Изменено: 30.08.2023, 16:01 - Неуловимый Джо
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #521557
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Неуловимый Джо  30.08.2023, 15:45
[игнорируется]
ну и поднять свой уровень в паскале, потому что сейчас на нем работаю.
за эту неделю сильно подрос )
на работе все-таки основное это TSQL.
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Creating Gear: An interpreter written in Free Pascal
    #521558
Гарыныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей кроме]
[spoiler][size=4][b]Клоп, жидок ты обоссаный, просто пройди нахуй![/b][/size] [:nahui][/spoiler]
Неуловимый Джо  30.08.2023, 15:45
[игнорируется]
Гарыныч  30.08.2023, 15:40
[игнорируется]
Неуловимый Джо [игнорируется] 

а можно вопрос? : зачем делаешь интерпретатор и интерпретатор чего? ( извини, если нубский вопрос)
Coding kata.

Ката программирования )
Просто тренировка, ну и поднять свой уровень в паскале, потому что сейчас на нем работаю.

Интерпретатор, там какой-то свой язык, автор назвал его Gear.
Я его изменю, мне не нужны операторы битовых сдвигов.
Логические операторы & | ! ~ заменю на человеческие and, or и тд

Короче просто как развлечение по вечерам.
понял, пасиб за ответ
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #521564
Гарыныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей кроме]
[spoiler][size=4][b]Клоп, жидок ты обоссаный, просто пройди нахуй![/b][/size] [:nahui][/spoiler]
Неуловимый Джо  30.08.2023, 16:00
[игнорируется]
Гарыныч  30.08.2023, 15:40
[игнорируется]
и интерпретатор чего?
По такой теме книга с примерами на паскале это сейчас редкость.
Снимок.PNG
яндекс по картинке такое предложил :
https://yandex.ru/products/product/1456497301/sku/101471272628
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #521566
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Гарыныч  30.08.2023, 16:08
[игнорируется]
Неуловимый Джо  30.08.2023, 16:00
[игнорируется]
Гарыныч  30.08.2023, 15:40
[игнорируется]
и интерпретатор чего?
По такой теме книга с примерами на паскале это сейчас редкость.
Снимок.PNG
яндекс по картинке такое предложил :
https://yandex.ru/products/product/1456497301/sku/101471272628
Да я так понял эта книга не издана.
Самиздат автора.
Но книга хорошая, рекомендую всем кто хочет побаловаться в этой теме на паскале.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #521568
Гарыныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей кроме]
[spoiler][size=4][b]Клоп, жидок ты обоссаный, просто пройди нахуй![/b][/size] [:nahui][/spoiler]
Неуловимый Джо  30.08.2023, 16:09
[игнорируется]
Гарыныч  30.08.2023, 16:08
[игнорируется]
Неуловимый Джо  30.08.2023, 16:00
[игнорируется]
Гарыныч  30.08.2023, 15:40
[игнорируется]
и интерпретатор чего?
По такой теме книга с примерами на паскале это сейчас редкость.
Снимок.PNG
яндекс по картинке такое предложил :
https://yandex.ru/products/product/1456497301/sku/101471272628
Да я так понял эта книга не издана.
Самиздат автора.
Но книга хорошая, рекомендую всем кто хочет побаловаться в этой теме на паскале.
скачал себе навсякий ( книжку по твоей ссылке )
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #525229
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Дошел до создания дерева выражения.
Пока простой калкулятор.
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #525231
PaNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Неуловимый Джо  03.09.2023, 00:36
[игнорируется]
калкулятор
у нас тут есть товарищ, практически офицер, который в свободное от работы время тоже сделал калькулятор, можете нам с ним помочь? его речь на русскую непохожа [:sad]
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Creating Gear: An interpreter written in Free Pascal
    #525235
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
PaNik  03.09.2023, 00:39
[игнорируется]
Неуловимый Джо  03.09.2023, 00:36
[игнорируется]
калкулятор
у нас тут есть товарищ, практически офицер, который в свободное от работы время тоже сделал калькулятор, можете нам с ним помочь? его речь на русскую непохожа [:sad]
нужно больше калькляторов!
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #525236
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Тут калькулято только первый шаг.
Дальше там классы, структуры данных, функции и тд

Правда я чуток меняю по ходу чтения.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #525240
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
PaNik [игнорируется] 

Вот моя основная цель (из предисловия к книжке):

By the end of the book you’ll be an Object Pascal guru and have some knowledge of Lazarus.

На лазарус мне плевать, а вот первая часть фразы понравилась :)
...
Изменено: 03.09.2023, 01:06 - Неуловимый Джо
Рейтинг: 1 / 0
Нравится: Гарыныч
Creating Gear: An interpreter written in Free Pascal
    #525557
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
PaNik  03.09.2023, 00:39
[игнорируется]
Неуловимый Джо  03.09.2023, 00:36
[игнорируется]
калкулятор
у нас тут есть товарищ, практически офицер, который в свободное от работы время тоже сделал калькулятор, можете нам с ним помочь? его речь на русскую непохожа [:sad]
как закончу, тоже запью, и начну всех доставать что я сделал прелесть.
...
Рейтинг: 1 / 0
Нравится: Ифрит
Creating Gear: An interpreter written in Free Pascal
    #525735
Артефакт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
без 100500 скачек нещитово
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #525911
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Калькулятор считает!
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #527423
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Основные математические операции все.
На выходных займусь ключами командной строки и REPLом, а потом можно будет и сам язык, присвоение переменных и тд.
Снимок.PNG
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Creating Gear: An interpreter written in Free Pascal
    #527457
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
правда возведение в степень у меня имеет одинаковый приоритет с умножением и делением, но пофиг.
скобки ведь есть.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #528437
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Добавил "оболочку"
ключи командной строки для интерпретации файлов, если gear.exe без параметров, то программу вводить с консоли.
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #528981
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Строки.
На выходных займусь логическими операциями.
Снимок.PNG
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Creating Gear: An interpreter written in Free Pascal
    #528983
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
У него в книге строки в апострофах, а char обозначается как "F
кавычка перед символом.

Я решил пусть строки будут и в кавычках и в апострофах, а char вообще не нужен.
Как в питоне.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #529024
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Неуловимый Джо  06.09.2023, 12:19
[игнорируется]
Я решил пусть строки будут и в кавычках и в апострофах, а char вообще не нужен.
Как в питоне
Добавил заодно и умножение строк.
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #529178
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Неуловимый Джо  04.09.2023, 22:31
[игнорируется]
правда возведение в степень у меня имеет одинаковый приоритет с умножением и делением, но пофиг.
скобки ведь есть.
поправил.
теперь возведение в степень более высокий приоритет.
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #530850
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Логические операции.
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #542346
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Переменные, константы и оператор print.
Правда переменные пока ничем кроме ключевого слова не отличаются от констант.
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #542350
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #542613
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Решил избавиться от паскалевского :=

теперь = это присваивание, а == сравнение.
Снимок.PNG
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Creating Gear: An interpreter written in Free Pascal
    #545730
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Присвоение разных видов.
Снимок.PNG
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Creating Gear: An interpreter written in Free Pascal
    #545739
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #545754
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #545830
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
надо бы еще для строк сделать *=
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #546341
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Становится удобнее тестировать в VSCode :)
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #546374
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Сразу и дерево выражений посмотреть...

Как думаете, пришло уже время доставать всех интерпретатором?
Ведь по сути, это конвертатор + калькулятор!
Снимок.PNG
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Creating Gear: An interpreter written in Free Pascal
    #546826
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Настроил в VSCode чтобы расширение .gear воспринимало как javascript, просто чтобы красивее смотрелось :)
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #547325
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
декларация множества переменных через запятую
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #549509
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Неуловимый Джо  20.09.2023, 00:37
[игнорируется]
надо бы еще для строк сделать *=
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #551394
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
if, else и локальные переменные
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #551869
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Циклы!
Правда пока только while.
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #551875
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неуловимый Джо [игнорируется] 

Вирт в первой версии Оберона цикл for не включил в язык. )
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #551901
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
s62 [игнорируется] 

Да может тоже не буду for.
Сейчас из важного break и continue.
И функции.
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #551904
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Главная проблема с while, это что время от времени забываешь оператор приращения переменной цикла.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #551914
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неуловимый Джо  24.09.2023, 14:31
[игнорируется]
Главная проблема с while, это что время от времени забываешь оператор приращения переменной цикла.
Не раз бывало с Dataset'ом вот такое:
Код: Delphi
1.
2.
3.
4.
5.
6.
while not DSet.EOF do
begin
  ...
  ...
//а тут забыл поставить DSet.Next;
end;
...
Изменено: 24.09.2023, 14:41 - s62
Рейтинг: 1 / 0
Нравится: Неуловимый Джо
Creating Gear: An interpreter written in Free Pascal
    #551915
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
s62  24.09.2023, 14:40
[игнорируется]
Неуловимый Джо  24.09.2023, 14:31
[игнорируется]
Главная проблема с while, это что время от времени забываешь оператор приращения переменной цикла.
Не раз бывало с Dataset'ом вот такое:
Код: Delphi
1.
2.
3.
4.
5.
6.
while not DSet.EOF do
begin
  ...
  ...
//а тут забыл поставить DSet.Next;
end;
да я почему вспомнил, сейчас когда тестировал, забыл i += 1
в первую секунду растерялся что происходит :)
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #552292
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
циклы for и repeat

for почти полностью отсебятина, мне не понравилось как он придумал.

вот так у него в книге:
Код: Delphi
1.
2.
3.
for var i := 0 where i < 100, i+=1 do
  print(i)
end
я переделал на почти сишный вариант
Код: Delphi
1.
2.
3.
for i = 0, i < 10, i += 1 do
  print(i)
end
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #552299
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
переделал for
сделал там var обязательным, и переменная цикла локальная внутри блока цикла
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #553512
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
elseif (правда пока можно только один)
на выходных сделаю чтоб можно было несколько.
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #553519
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Получается смесь Паскаля, Висуал бэйсика и Си.
Цикл For почти сишный.
...
Рейтинг: 1 / 0
Нравится: s62
Creating Gear: An interpreter written in Free Pascal
    #554150
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Множественные elseif
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #556306
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Что-то подумал.
А мне ведь никто не мешает сделать все ключевые слова на русском!
сделать что-то вроде 1С.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #557057
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
break
Снимок.PNG
...
Рейтинг: 1 / 0
Нравится: Tosh
Creating Gear: An interpreter written in Free Pascal
    #558202
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
continue
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #558212
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Код: Delphi
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
var a = -1

print('test break on')
for var a = 0; a < 5; a += 1 do
  print(a)
  break on a == 2
end

print('test break')
for var a = 0; a < 5; a += 1 do
  print(a)
  if a == 3 then
    break
  end
end

print('test while with break')
a = 0
while a < 10 do
  print(a)
  break on a == 2
  a += 1
end

print('test repeat until with break')
a = 0
repeat
  print(a)
  break on a == 2
  a += 1
until a > 10

print('test continue')
for var i = 0; i < 10; i += 1 do
  if i == 2 then
    continue
  else
    print(i)
  end
end

print('test while with continue')
a = 0
while a < 10 do
  if a == 2 then
    a += 1
    continue
  else
    print(a)
  end
  a += 1
end

print('test repeat until with continue')
a = 0
repeat
  if a == 2 then
    a += 1
    continue
  else
    print(a)
  end
  a += 1
until a > 10
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Creating Gear: An interpreter written in Free Pascal
    #558214
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Switch точно не нужен, если есть elseif.

Следующий этап функции.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #558369
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неуловимый Джо  30.09.2023, 00:20
[игнорируется]
Switch точно не нужен, если есть elseif.
...
Вот так засланных казачков и вычисляют. В Паскале - case! :)

Кстати удобная конструкция.
...
Изменено: 30.09.2023, 09:16 - s62
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #558414
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
s62  30.09.2023, 09:15
[игнорируется]
Неуловимый Джо  30.09.2023, 00:20
[игнорируется]
Switch точно не нужен, если есть elseif.
...
Вот так засланных казачков и вычисляют. В Паскале - case! :)

Кстати удобная конструкция.
Удобная, но elseif тоже достаточно.

Да просто не терпится уже функции начать :)
В принципе необходимый минимум уже есть.

Сейчас функции, потом "встроенные" функции. Встроенные или стандартные, как их автор называет.
Имеется в виду свой набор функций языка.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #558421
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
s62  30.09.2023, 09:15
[игнорируется]
В Паскале - case! :)
Да просто глава так в книге называется, вот я на автомате и повторил.
В этом языке приходится
switch
case 1
case 2
else
end

Приходится, потому что автор выбрал стиль без бегин енд, а блоки надо как-то отделять.
Тут блок будет заканчиваться очередным case.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #558422
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
А мне, если сейчас перейти на begin end, это все операторы править.
...
Изменено: 30.09.2023, 10:16 - Неуловимый Джо
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #558423
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
позже картинку вставлю, какой он предлагает вариант кейса.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #558485
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
s62  30.09.2023, 09:15
[игнорируется]
Кстати удобная конструкция.
что есть то есть.
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #558757
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Автор книги конечно хороший программист на Паскале, но как дизайнер языка ... говно какое-то если честно

Вот что он предлагает

method(a,b)(c,d)

Это означает что функция вызывается с параметрами (a, b), а потом результат с параметрами (c, d)
достаточно часто приходится продираться через код, чтобы избавляться от подобного говна.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #559406
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Снимок.PNG
...
Рейтинг: 2 / 0
Нравится: s62, Гарыныч
Creating Gear: An interpreter written in Free Pascal
    #559461
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
И рекурсивные :)
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #559485
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
closures

не то чтобы это было нужно, это скорее как побочный результат того, что для функций сделано свое "адресное пространство" (на самом деле обычный Dictionary).
в итоге они получились вложенные, ну и такие возможности.
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #559542
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Ханойские башни :)
Снимок.PNG
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Creating Gear: An interpreter written in Free Pascal
    #559998
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Модуль "стандартных" функций.
Теперь язык можно расширять функциями.

Пока просто для примера добавлена pi() и Writeln

Оператор Print теперь можно и удалить.
Это был первый оператор :)
Снимок.PNG
Снимок2.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #561449
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
На этом наверно и всё.
Дальше уже не интересно.

Теперь возможно то же самое на сишарпе.
Подумаю еще чем дальше заняться.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #561601
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
А хотя нет.
Нужно еще провести эксперимент.
Попробовать использовать этот интерпретатор в качестве скриптового языка в VCL приложении.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #561603
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Так-то штука получилась расширяемая.

добавление константы sLineBreak
Снимок2.PNG
Снимок.PNG
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Creating Gear: An interpreter written in Free Pascal
    #571131
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Продолжать буду тут
Может эта тема как-то поможет расшевелить рескул :)

https://resql.ru/forum/topic.php?fid=58&tid=2186854

уже сделал выражение Case и интерполяцию строк.
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Creating Gear: An interpreter written in Free Pascal
    #573321
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Краткая запись функций (стрелочный функции)
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #573323
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Возможно так будет удобнее для локальных функций.
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #573594
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Анонимные функции!
Самому начинает нравиться этот язык :)
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #573829
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Лямбды как в шарпе
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #579085
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Кортежи!
tuples
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #579087
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Вызовы функций и кортежи там делаются через интерфейсы.
В Variant передается интерфейсный объект, и тут Lazarus слегка отличается от Delphi, пришлось повозиться с отладкой и поиском в StackOverlaw.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #579091
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
И функция возвращает tuple, если не заметили :)
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #579312
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Правда пока только создание.
Чтение и изменение элементов еще не сделано.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #579351
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Только трюков типа (a, b) = (b, a) тут не получится.
В этом интерпретаторе у него изначально всё как говорится ByVal.
Все переменные и константы это Variant.

то есть
var a = 1, b =2
var tp = (a, b) // здесь будут копии величин, а не ссылки на переменные.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #579353
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Наверно надо было изначально не на Variant, а на TObject завязываться.
Ну или как-то посложнее работу с указателями.
Ну да ладно.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #579431
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Хоть просто способ вернуть несколько значений из функции.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #579888
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
А кстати, тогда и массивы не нужны.
Добавить функции по добавлению элементов в кортеж да и все.
Этой структуры данных и хватит на все случаи для такого недоязыка.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #580171
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Решил протестировать, сделать "стандартную функцию языка", которая будет возвращfть tuple.

То есть эта функция, которую я пишу в Delphi, и которая потом будет использоваться в данном скриптовом языке будто это встроенная функция.
Программиста тут заботит только параметр AArgList, в данном случае он пустой.
Код: Delphi
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
function TPi.Call(AToken: TToken; AInterpreter: TInterpreter; AArgList: TArgList): Variant;
var
  Tuple: ITuple;
begin
  Tuple := ITuple(TTuple.Create);
  Tuple.Elements.Add('pi');
  Tuple.Elements.Add(pi);

  Result := Tuple;
end;
Снимок.PNG
...
Изменено: 20.10.2023, 21:33 - Неуловимый Джо
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #580237
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #580262
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Неуловимый Джо  20.10.2023, 17:20
[игнорируется]
А кстати, тогда и массивы не нужны.
Добавить функции по добавлению элементов в кортеж да и все.
Этой структуры данных и хватит на все случаи для такого недоязыка.
Так и сделал. Начинаю проникаться проектом, расширяю :)
Снимок.PNG
...
Изменено: 20.10.2023, 23:14 - Неуловимый Джо
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #580264
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Это уже отсебятина идет.
Он предполагал кортеж неизменяемого размера, и к элементам обращаться как a.1 или b.2

В общем язык вполне себе расширяемый.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #580265
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
В принципе можно также и функции работы со строками, с файлами, датасетами, формами...
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #588121
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Начал делать Dictionary.
Это уже почти полностью своё, он там сначала делает классы, потом уже с использованием классов создаваемого языка Dictionary.
Я решил попроще как-то, тем более классы, методы, наследование и тд я в язык добавлять не собираюсь.
Пока только разбор AST (abstract syntax tree)
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #588138
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
а вообще кортежи в качестве ключей запрещу нафиг.
это ведь еще c хэшфункциями возиться.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #588183
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
А хотя что там возиться, найти где-нибудь как питон делает хеш для кортежей, да и скопипастить.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #588338
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
или вообще, приводить кортежи к строке, да и использовать эту строку как ключ.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #589102
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Интерпретация Dictionary уже работает.
С хэшами плюнул, в этом интерепретаторе всё хранится в Variant, не переделывать же сейчас всё на TObject.
А с Variant 1 и '1' это одно и то же.

Решил пойти по простому пути, ключом в словаре может быть только строка, все остальное будет приводиться к строке.

Собственно, цель словаря в этом интерпретаторе будет только для упрощения получения данных с датасетов.
Чтоб можно было обращаться примерно так
Код: Delphi
1.
2.
row = ds[0] //ds это tuple строк
print(row['Field1'])
Только обращение к элементам словаря еще не сделал.
Снимок.PNG
...
Изменено: 29.10.2023, 18:17 - Неуловимый Джо
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #589387
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
По хорошему надо tuple переименовать в list.
И сделать в квадратных скобках.

но уже лень.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #597603
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Чтение элементов Dictionary
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #597922
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
s62 [игнорируется] 

выложил рекламу этой книги на sqlru.net, ожидаемо начался срач :)
...
Рейтинг: 2 / 0
Нравится: PaNik, Гарыныч
Creating Gear: An interpreter written in Free Pascal
    #597946
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Неужели реально такая заезженная тема и прям все-все-все делали свои интерпретаторы...
Только я один как-то этого избежал, поэтому мне одному эта тема и интересна :)
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #597958
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Присваивание элементам словаря
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #597959
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Надо еще мелочи типа ContainsKey и возврата коллекции ключей.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #598314
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неуловимый Джо  05.11.2023, 15:26
[игнорируется]
s62 [игнорируется] 

выложил рекламу этой книги на sqlru.net, ожидаемо начался срач :)
Мне кажется, до срача там не дотягивает пока, скорее пара прохладных отзывов. :)
...
Изменено: 05.11.2023, 21:18 - s62
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #598716
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Неуловимый Джо  20.10.2023, 09:41
[игнорируется]
Только трюков типа (a, b) = (b, a) тут не получится.
В этом интерпретаторе у него изначально всё как говорится ByVal.
Все переменные и константы это Variant.
А хотя что я туплю.
Это ведь просто доработать присваивания.
добавить если слева и справа кортежи,
то просто присваивать в цикле.

Делов-то :)
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #598754
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
хотя нет, туплю опять.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #603524
IT-Клоп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неуловимый Джо  05.11.2023, 16:17
[игнорируется]
Неужели реально такая заезженная тема и прям все-все-все делали свои интерпретаторы...
Только я один как-то этого избежал, поэтому мне одному эта тема и интересна :)
У Учителя нашего, Герберта Шилдта, в каждой книжке последовательно (C, C++, Java etc.) в качестве одной из глав шло упражнение по написанию интерпретатора Basic.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #603530
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
IT-Клоп  09.11.2023, 13:23
[игнорируется]
Неуловимый Джо  05.11.2023, 16:17
[игнорируется]
Неужели реально такая заезженная тема и прям все-все-все делали свои интерпретаторы...
Только я один как-то этого избежал, поэтому мне одному эта тема и интересна :)
У Учителя нашего, Герберта Шилдта, в каждой книжке последовательно (C, C++, Java etc.) в качестве одной из глав шло упражнение по написанию интерпретатора Basic.
ну одной главой-то там не обойдешься, скорее всего там просто пример так называемого сканера.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #603532
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
IT-Клоп  09.11.2023, 13:23
[игнорируется]
Неуловимый Джо  05.11.2023, 16:17
[игнорируется]
Неужели реально такая заезженная тема и прям все-все-все делали свои интерпретаторы...
Только я один как-то этого избежал, поэтому мне одному эта тема и интересна :)
У Учителя нашего, Герберта Шилдта, в каждой книжке последовательно (C, C++, Java etc.) в качестве одной из глав шло упражнение по написанию интерпретатора Basic.
Я кстати Шилдта не читал.
По си помню читал Кернигана и Ричи.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #603533
IT-Клоп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неуловимый Джо  09.11.2023, 13:31
[игнорируется]
IT-Клоп  09.11.2023, 13:23
[игнорируется]
Неуловимый Джо  05.11.2023, 16:17
[игнорируется]
Неужели реально такая заезженная тема и прям все-все-все делали свои интерпретаторы...
Только я один как-то этого избежал, поэтому мне одному эта тема и интересна :)
У Учителя нашего, Герберта Шилдта, в каждой книжке последовательно (C, C++, Java etc.) в качестве одной из глав шло упражнение по написанию интерпретатора Basic.
ну одной главой-то там не обойдешься, скорее всего там просто пример так называемого сканера.
Да, там конечно это в основном как пример построения дерева синтаксического анализатора.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #603535
IT-Клоп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неуловимый Джо  09.11.2023, 13:32
[игнорируется]
IT-Клоп  09.11.2023, 13:23
[игнорируется]
Неуловимый Джо  05.11.2023, 16:17
[игнорируется]
Неужели реально такая заезженная тема и прям все-все-все делали свои интерпретаторы...
Только я один как-то этого избежал, поэтому мне одному эта тема и интересна :)
У Учителя нашего, Герберта Шилдта, в каждой книжке последовательно (C, C++, Java etc.) в качестве одной из глав шло упражнение по написанию интерпретатора Basic.
Я кстати Шилдта не читал.
По си помню читал Кернигана и Ричи.
У него неплохие книги, но несколько однообразные.
Он каждый раз на примере языка разбирает классические алгоритмы - сортировка , поиск, деревья и т.п.

У Кернигана похожая книга - это "Практика программирования"
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #603541
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
IT-Клоп  09.11.2023, 13:23
[игнорируется]
Неуловимый Джо  05.11.2023, 16:17
[игнорируется]
Неужели реально такая заезженная тема и прям все-все-все делали свои интерпретаторы...
Только я один как-то этого избежал, поэтому мне одному эта тема и интересна :)
У Учителя нашего, Герберта Шилдта, в каждой книжке последовательно (C, C++, Java etc.) в качестве одной из глав шло упражнение по написанию интерпретатора Basic.
Ну в любом случае, тут именно на паскале, интересно ведь :)
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #629462
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Добавил сложение кортежей.

Это уже в 12й версии :)

Нужно переделать кортежи в списки, потому что они уже и есть списки во всем, кроме названия.
В них можно добавлять элементы, их можно складывать.

Нужно переделать их с круглых скобок на квадратные и везде в коде Tuple заменить на List.
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #629480
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
И +=
12я версия мне добавила вдохновения.
Снимок.PNG
Снимок.PNG
...
Изменено: 25.11.2023, 18:22 - Неуловимый Джо
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #630105
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Добавил что если к списку прибавить выражение, то будет добавляться элемент результат данного выражения.
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #630106
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
То есть если добавляется сприсок, то в левый список добавляются элементы из правого.
Если добавляется вылажение, то добавляется один элемент - результата выражения.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #630111
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Хотя сейчас думаю, если прибавлять список, то тоже наверно нужно добавить этот список одним элементом.
Не знаю как лучше, можно в принципе и так и так.
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #630843
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Круглые скобки у списков исправил на квадратные.
Там было не так просто :)

Осталось везде в коде Tuple заменить на List.
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #633262
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #633947
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Как тебе такое, Илон Маск!
Снимок.PNG
...
Рейтинг: 1 / 0
Нравится: Tosh
Creating Gear: An interpreter written in Free Pascal
    #642433
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Все-таки решился делать классы.
Пока только это.
Снимок.PNG
...
Рейтинг: 0 / 0
Creating Gear: An interpreter written in Free Pascal
    #649041
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Снимок.PNG
...
Рейтинг: 0 / 0
120 сообщений из 120, показаны все 5 страниц
Форумы / Языки программирования семейства Pascal [закрыт для гостей] / Creating Gear: An interpreter written in Free Pascal
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]