Гость
Map
Форумы / Языки программирования семейства Pascal [закрыт для гостей] / Creating Gear: An interpreter written in Free Pascal / 25 сообщений из 120, страница 3 из 5
26.09.2023, 00:41
    #553519
Неуловимый Джо
Участник
[игнорирует гостей]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Creating Gear: An interpreter written in Free Pascal
Получается смесь Паскаля, Висуал бэйсика и Си.
Цикл For почти сишный.
...
Рейтинг: 1 / 0
Нравится: s62
26.09.2023, 15:17
    #554150
Неуловимый Джо
Участник
[игнорирует гостей]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Creating Gear: An interpreter written in Free Pascal
Множественные elseif
Снимок.PNG
...
Рейтинг: 0 / 0
28.09.2023, 10:28
    #556306
Неуловимый Джо
Участник
[игнорирует гостей]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Creating Gear: An interpreter written in Free Pascal
Что-то подумал.
А мне ведь никто не мешает сделать все ключевые слова на русском!
сделать что-то вроде 1С.
...
Рейтинг: 0 / 0
28.09.2023, 21:26
    #557057
Неуловимый Джо
Участник
[игнорирует гостей]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Creating Gear: An interpreter written in Free Pascal
break
Снимок.PNG
...
Рейтинг: 1 / 0
Нравится: Tosh
30.09.2023, 00:04
    #558202
Неуловимый Джо
Участник
[игнорирует гостей]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Creating Gear: An interpreter written in Free Pascal
continue
Снимок.PNG
...
Рейтинг: 0 / 0
30.09.2023, 00:19
    #558212
Неуловимый Джо
Участник
[игнорирует гостей]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Creating Gear: An interpreter written in Free Pascal
Код: 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
Нравится: Гарыныч
30.09.2023, 00:20
    #558214
Неуловимый Джо
Участник
[игнорирует гостей]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Creating Gear: An interpreter written in Free Pascal
Switch точно не нужен, если есть elseif.

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

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

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

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

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

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

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

method(a,b)(c,d)

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

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

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

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

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

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

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

уже сделал выражение Case и интерполяцию строк.
...
Рейтинг: 1 / 0
Нравится: Гарыныч
14.10.2023, 00:41
    #573321
Неуловимый Джо
Участник
[игнорирует гостей]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Creating Gear: An interpreter written in Free Pascal
Краткая запись функций (стрелочный функции)
Снимок.PNG
...
Рейтинг: 0 / 0
14.10.2023, 00:53
    #573323
Неуловимый Джо
Участник
[игнорирует гостей]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Creating Gear: An interpreter written in Free Pascal
Возможно так будет удобнее для локальных функций.
Снимок.PNG
...
Рейтинг: 0 / 0
Форумы / Языки программирования семейства Pascal [закрыт для гостей] / Creating Gear: An interpreter written in Free Pascal / 25 сообщений из 120, страница 3 из 5
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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