|
Creating Gear: An interpreter written in Free Pascal
#573594
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
... |
||||||||||||||||
:
Нравится:
Не нравится:
|
||||||||||||||||
14.10.2023, 14:34 |
|
Creating Gear: An interpreter written in Free Pascal
#573829
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
... |
||||||||||||||||
:
Нравится:
Не нравится:
|
||||||||||||||||
14.10.2023, 22:49 |
|
Creating Gear: An interpreter written in Free Pascal
#579085
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
... |
||||||||||||||||
:
Нравится:
Не нравится:
|
||||||||||||||||
19.10.2023, 23:00 |
|
Creating Gear: An interpreter written in Free Pascal
|
|||
---|---|---|---|
#18+
Вызовы функций и кортежи там делаются через интерфейсы. В Variant передается интерфейсный объект, и тут Lazarus слегка отличается от Delphi, пришлось повозиться с отладкой и поиском в StackOverlaw. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2023, 23:02 |
|
Creating Gear: An interpreter written in Free Pascal
|
|||
---|---|---|---|
#18+
И функция возвращает tuple, если не заметили :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2023, 23:10 |
|
Creating Gear: An interpreter written in Free Pascal
|
|||
---|---|---|---|
#18+
Правда пока только создание. Чтение и изменение элементов еще не сделано. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2023, 08:42 |
|
Creating Gear: An interpreter written in Free Pascal
|
|||
---|---|---|---|
#18+
Только трюков типа (a, b) = (b, a) тут не получится. В этом интерпретаторе у него изначально всё как говорится ByVal. Все переменные и константы это Variant. то есть var a = 1, b =2 var tp = (a, b) // здесь будут копии величин, а не ссылки на переменные. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2023, 09:41 |
|
Creating Gear: An interpreter written in Free Pascal
|
|||
---|---|---|---|
#18+
Наверно надо было изначально не на Variant, а на TObject завязываться. Ну или как-то посложнее работу с указателями. Ну да ладно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2023, 09:42 |
|
Creating Gear: An interpreter written in Free Pascal
|
|||
---|---|---|---|
#18+
Хоть просто способ вернуть несколько значений из функции. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2023, 11:04 |
|
Creating Gear: An interpreter written in Free Pascal
|
|||
---|---|---|---|
#18+
А кстати, тогда и массивы не нужны. Добавить функции по добавлению элементов в кортеж да и все. Этой структуры данных и хватит на все случаи для такого недоязыка. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2023, 17:20 |
|
Creating Gear: An interpreter written in Free Pascal
#580171
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
Решил протестировать, сделать "стандартную функцию языка", которая будет возвращfть tuple. То есть эта функция, которую я пишу в Delphi, и которая потом будет использоваться в данном скриптовом языке будто это встроенная функция. Программиста тут заботит только параметр AArgList, в данном случае он пустой. Код: Delphi 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
||||||||||||||||
:
Изменено: 20.10.2023, 21:33 - Неуловимый Джо
Нравится:
Не нравится:
|
||||||||||||||||
20.10.2023, 21:32 |
|
Creating Gear: An interpreter written in Free Pascal
#580237
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
... |
||||||||||||||||
:
Нравится:
Не нравится:
|
||||||||||||||||
20.10.2023, 22:31 |
|
Creating Gear: An interpreter written in Free Pascal
#580262
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
А кстати, тогда и массивы не нужны. Добавить функции по добавлению элементов в кортеж да и все. Этой структуры данных и хватит на все случаи для такого недоязыка. ... |
||||||||||||||||
:
Изменено: 20.10.2023, 23:14 - Неуловимый Джо
Нравится:
Не нравится:
|
||||||||||||||||
20.10.2023, 23:08 |
|
Creating Gear: An interpreter written in Free Pascal
|
|||
---|---|---|---|
#18+
Это уже отсебятина идет. Он предполагал кортеж неизменяемого размера, и к элементам обращаться как a.1 или b.2 В общем язык вполне себе расширяемый. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2023, 23:10 |
|
Creating Gear: An interpreter written in Free Pascal
|
|||
---|---|---|---|
#18+
В принципе можно также и функции работы со строками, с файлами, датасетами, формами... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2023, 23:16 |
|
Creating Gear: An interpreter written in Free Pascal
#588121
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
Начал делать Dictionary. Это уже почти полностью своё, он там сначала делает классы, потом уже с использованием классов создаваемого языка Dictionary. Я решил попроще как-то, тем более классы, методы, наследование и тд я в язык добавлять не собираюсь. Пока только разбор AST (abstract syntax tree) ... |
||||||||||||||||
:
Нравится:
Не нравится:
|
||||||||||||||||
28.10.2023, 21:18 |
|
Creating Gear: An interpreter written in Free Pascal
|
|||
---|---|---|---|
#18+
а вообще кортежи в качестве ключей запрещу нафиг. это ведь еще c хэшфункциями возиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2023, 21:26 |
|
Creating Gear: An interpreter written in Free Pascal
|
|||
---|---|---|---|
#18+
А хотя что там возиться, найти где-нибудь как питон делает хеш для кортежей, да и скопипастить. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2023, 21:40 |
|
Creating Gear: An interpreter written in Free Pascal
|
|||
---|---|---|---|
#18+
или вообще, приводить кортежи к строке, да и использовать эту строку как ключ. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2023, 23:02 |
|
Creating Gear: An interpreter written in Free Pascal
#589102
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
Интерпретация Dictionary уже работает. С хэшами плюнул, в этом интерепретаторе всё хранится в Variant, не переделывать же сейчас всё на TObject. А с Variant 1 и '1' это одно и то же. Решил пойти по простому пути, ключом в словаре может быть только строка, все остальное будет приводиться к строке. Собственно, цель словаря в этом интерпретаторе будет только для упрощения получения данных с датасетов. Чтоб можно было обращаться примерно так Код: Delphi 1. 2.
... |
||||||||||||||||
:
Изменено: 29.10.2023, 18:17 - Неуловимый Джо
Нравится:
Не нравится:
|
||||||||||||||||
29.10.2023, 18:11 |
|
Creating Gear: An interpreter written in Free Pascal
|
|||
---|---|---|---|
#18+
По хорошему надо tuple переименовать в list. И сделать в квадратных скобках. но уже лень. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2023, 22:43 |
|
Creating Gear: An interpreter written in Free Pascal
#597603
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
... |
||||||||||||||||
:
Нравится:
Не нравится:
|
||||||||||||||||
05.11.2023, 00:22 |
|
Creating Gear: An interpreter written in Free Pascal
|
|||
---|---|---|---|
#18+
Неужели реально такая заезженная тема и прям все-все-все делали свои интерпретаторы... Только я один как-то этого избежал, поэтому мне одному эта тема и интересна :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2023, 16:17 |
|
Creating Gear: An interpreter written in Free Pascal
#597958
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
... |
||||||||||||||||
:
Нравится:
Не нравится:
|
||||||||||||||||
05.11.2023, 16:27 |
|
|
start [/forum/topic.php?fid=16&msg=579353&tid=11905]: |
0ms |
get settings: |
28ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
1723ms |
get tp. blocked users: |
2ms |
others: | 52ms |
total: | 1891ms |
0 / 0 |