Кто-нибудь в курсе существования такой подсистемы как
Oberon Text Tools (Ott) для BlackBox? Она является продолжением реализации интерфейса доступа к тексту библиотеки проекта OO2C.
Суть сводилась к написанию единого интерфейса доступа к текстам для всех Оберонов, чтобы было легко переносить программы с одного Оберона на другой.
Подсистема Ott была реализована в ББ 1.3 поверх подсистемы Text и, в отличие от последнего, работает с текстом без атрибутов форматирования, то есть с голым набором символов.
- OOC text i/o for other Oberons?
- Portable Text I/O using OOC library API (продолжение обсуждения)
Ian Rae писал(а):
I would like to use the text i/o portion of the OOC library as the API.
This library would use the file prefix "OOC" to distinguish its modules
and identify its heritage.
Module OOCChannel
-define the abstract types Channel, Reader, Writer
Module OOCFiles
-define the abstract classes File, Reader, and Writer that are extensions
of their counterparts in OOCChannel
-define hidden concrete extensions of File, Reader, and Writer for the
following types of files:
-ASCII text files. ie. native OS text files
-text documents of the target Oberon system. For instance,
V4 Text files, BlackBox .ODC files, etc.
(Implementation would use the highest level classes available
in the target Oberon system. eg Texts in V4, etc)
-locator procedures would create a File object appropriate to the
type of file being accessed.
Module OOCTexts
-define the abstract classes for accessing plaintext in the Text
object of the target Oberon system. eg. TextModels in BlackBox,
Text in V4, etc
-these classes (Text, Reader, and Writer) would be concrete extensions
of their counterparts in Channel
-locators will be available to "open" the current frame, or the selected
text, etc
Modules OOCTextRider and OOCBinaryRider
-define mapper classes that can connect to any OOCChannel
-should be usable with only minor changes from OOC library version
Module OOCProgramArgs and OOCStdChannels
-I'm not sure if these notions exist in most Oberon system?
Module OOCLogs
-support writing to the Log via a OOCChannel
Судя по всему, следовало бы доработать дубовые требования (Oakwood Guidelines) и для библиотек.
Исходный код, адаптированный для ББ 1.6 вместе с документацией можно скачать с хранилища Git на
github. Код был проверен лишь поверхностно: только приведённый примеры.
Поэтому, возможны недочёты.