Инструменты пользователя

Инструменты сайта


ob:v5

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
Следующая версия Следующая версия справа и слева
ob:v5 [2022/08/18 16:58]
dimik [Команды]
ob:v5 [2022/08/18 17:10]
dimik
Строка 47: Строка 47:
 При нажатии на команду M.P, модуль M ищется в хранилище и если он найден то загружается в основное хранилище. Затем ищется его процедура P и выполняется. Список загруженных модулей может быть сформирован командой System.ShowModules, а список его команд можно получить командой System.ShowCommands. Любая процедура без параметров в любом (скомпилированном) модуле является доступной как команда. Доступ к ее параметрам осуществляется через сканер. В качестве примера, рассмотрим следующий модуль: При нажатии на команду M.P, модуль M ищется в хранилище и если он найден то загружается в основное хранилище. Затем ищется его процедура P и выполняется. Список загруженных модулей может быть сформирован командой System.ShowModules, а список его команд можно получить командой System.ShowCommands. Любая процедура без параметров в любом (скомпилированном) модуле является доступной как команда. Доступ к ее параметрам осуществляется через сканер. В качестве примера, рассмотрим следующий модуль:
  
-''MODULE M0; + {{:ob:img4.png}}
- +
  
-IMPORT TextsOberon;+После успешной компиляции (ORP.Compile @)команда: M0.P0 2 3 5 7 11 ~ приводит к выводу этих чисел и их суммы в стандартный системный журнал System.Log.
  
-  
-VAR W: Texts.Writer; 
  
-  +==== Ядро системы Oberon ==== 
-PROCEDURE P0*; +Ядро системы состоит из цикла, который непрерывно отслеживает появление команды. Команда идентифицируется, управление передается, и команда выполняется. Команда может исходить от явного нажатия СКМ на текст M.P, или это может быть ЛКМ или ПКМ (см. редактирование команды). Еще одним источником ввода является клавиатура. Если нажата какая-либо клавиша, это интерпретируется как команда на чтение этого символа. Исключение составляют клавиши Esc, Ctrl-z (или F1). Esc интерпретируется как команда отменить все выделения, backspace - для удаления символа слева от каретки, а Ctrl-z - для установки глобального маркера (звездочка). Первоначально загруженная система содержит, кроме модуля Oberon, модуль System, текстовую систему (модули TextFrames, MenuViewers, Texts, Fonts, Input), систему просмотра (модули Viewers, Display), загрузчик и компоновщик (модуль Modules), файловая система (модули Files, FileDir), менеджер дискового пространства и сборщик мусора (модуль Kernel).
  
- +{{:ob:img5.png}}
-VAR sumINTEGER;  +
- +
-STexts.Scanner;  +
- +
-BEGIN sum := 0; Texts.OpenScanner(S, Oberon.Par.text, Oberon.Par.pos); Texts.Scan(S); WHILE S.class = Texts.Int DO Texts.WriteInt(W, S.i, 6); sum := sum + S.i; Texts.Scan(S) END ; Texts.Write(W, sum, 8); Texts.WriteLn(W); Texts.Append(Oberon.Log, W.buf) END P0; BEGIN Texts.OpenWriter(W) END M0.''+
ob/v5.txt · Последнее изменение: 2022/08/18 17:42 — dimik