## Код:
```
MODULE SkScript 
управление интерпретатором:
PROCEDURE Compile; - "скомпилировать" программу в активном окне.
PROCEDURE CompileThis; - то же, для коммандера.
PROCEDURE Run; - запустить программу.
PROCEDURE Stop; - остановить.
PROCEDURE Do; скомпилировать и запустить.
PROCEDURE DoThis; 
две команды для пошагового выполнения:
PROCEDURE Start; - начать сначала.
PROCEDURE Step; - выполнить шаг. 

описание исполнителя:
PROCEDURE DefPerfomer (IN name: ARRAY OF CHAR; init: PROCEDURE);
PROCEDURE DefCommand (IN name: ARRAY OF CHAR; cmd: PROCEDURE);
PROCEDURE DefTest (IN name: ARRAY OF CHAR; tst: PROCEDURE (): BOOLEAN);
  
остальное - интерфейс с парсером и т.п.
END SkScript.
```


## Код:
```
MODULE SkRobot;
управление роботом:
PROCEDURE Up;
PROCEDURE Down; 
PROCEDURE Right;
PROCEDURE Left;
PROCEDURE Paint;
PROCEDURE Erase;

PROCEDURE UpClear (): BOOLEAN;
PROCEDURE DownClear (): BOOLEAN;
PROCEDURE LeftClear (): BOOLEAN;
PROCEDURE RightClear (): BOOLEAN;
PROCEDURE Painted (): BOOLEAN;

PROCEDURE Start; - устанавливает все в начальное состояние.

окошко:
PROCEDURE OpenView;
PROCEDURE CloseView;
PROCEDURE Deposit; 

лабиринт: создание, сохранение, загрузка. 
PROCEDURE InitMaze;
PROCEDURE CreateMaze;
PROCEDURE OpenMaze;
PROCEDURE OpenThisMaze (IN name: ARRAY OF CHAR);
PROCEDURE SaveMaze;
PROCEDURE SaveMazeAs;
END SkRobot.
```


## Код:
```
MODULE SkRoboScript;
 (* Вызов SkRoboScript.Init предполагается вставлять куда-нибудь в Config.Setup *)
PROCEDURE Init;
BEGIN
  (* выбираем язык *)
  SkScript.SetParser(SkLangRu.Parse); 

  (* определяем исполнителя: имя, процедура инициализации *)
  SkScript.DefPerfomer('Robot', SkRobot.Start);

  (* описываем команды и проверки: имя, процедура *)
  SkScript.DefCommand('Вверх', SkRobot.Up);
  SkScript.DefCommand('Вниз', SkRobot.Down);
  SkScript.DefCommand('Вправо', SkRobot.Right);
  SkScript.DefCommand('Влево', SkRobot.Left);
  SkScript.DefCommand('Закрасить', SkRobot.Paint);
  SkScript.DefTest('СверхуСвободно', SkRobot.UpClear);
  SkScript.DefTest('СнизуСвободно', SkRobot.DownClear);
  SkScript.DefTest('СправаСвободно', SkRobot.RightClear);
  SkScript.DefTest('СлеваСвободно', SkRobot.LeftClear);
  SkScript.DefTest('Закрашено', SkRobot.Painted);

  (* устанавливаем обработчик ошибок *)
  SkRobot.SetErrorHandler(SkScript.HandleError)
END Init;
```
