powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Языки программирования семейства Pascal [закрыт для гостей] / Creating Gear: An interpreter written in Free Pascal
25 сообщений из 120, страница 3 из 5
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
25 сообщений из 120, страница 3 из 5
Форумы / Языки программирования семейства Pascal [закрыт для гостей] / Creating Gear: An interpreter written in Free Pascal
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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