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

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


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 Texts, Oberon; +
-  +
-VAR WTexts.Writer; +
-  +
-PROCEDURE P0*; +
  
-VAR sumINTEGER; +После успешной компиляции (ORP.Compile @), командаM0.P0 2 3 5 7 11 ~ приводит к выводу этих чисел и их суммы в стандартный системный журнал System.Log.
  
-S: Texts.Scanner;  
  
-BEGIN sum :0; Texts.OpenScanner(SOberon.Par.textOberon.Par.pos); Texts.Scan(S); WHILE S.class = Texts.Int DO Texts.WriteInt(WS.i6); sum := sum + S.i; Texts.Scan(SEND ; Texts.Write(Wsum8); Texts.WriteLn(W); Texts.Append(Oberon.LogW.bufEND P0; BEGIN Texts.OpenWriter(WEND M0.''+==== Ядро системы Oberon ==== 
 +Ядро системы состоит из цикла, который непрерывно отслеживает появление командыКоманда идентифицируетсяуправление передается, и команда выполняетсяКоманда может исходить от явного нажатия СКМ на текст M.Pили это может быть ЛКМ или ПКМ (смредактирование команды). Еще одним источником ввода является клавиатураЕсли нажата какая-либо клавишаэто интерпретируется как команда на чтение этого символаИсключение составляют клавиши EscCtrl-z (или F1). Esc интерпретируется как команда отменить все выделения, backspace - для удаления символа слева от каретки, а Ctrl-z - для установки глобального маркера (звездочка). Первоначально загруженная система содержит, кроме модуля Oberon, модуль System, текстовую систему (модули TextFramesMenuViewers, Texts, Fonts, Input), систему просмотра (модули Viewers, Display), загрузчик и компоновщик (модуль Modules)файловая система (модули Files, FileDir), менеджер дискового пространства и сборщик мусора (модуль Kernel). 
 + 
 +{{:ob:img5.png}}
ob/v5.txt · Последнее изменение: 2022/08/18 17:42 — dimik