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

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


ob:v5

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия Следующая версия справа и слева
ob:v5 [2022/08/18 16:58]
dimik [Команды]
ob:v5 [2022/08/18 17:05]
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;  +
- +
-S: Texts.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