OberonCore
https://forum.oberoncore.ru/

Как обращаться с документами .odc
https://forum.oberoncore.ru/viewtopic.php?f=23&t=1469
Страница 1 из 1

Автор:  Валерий Лаптев [ Понедельник, 13 Апрель, 2009 15:40 ]
Заголовок сообщения:  Как обращаться с документами .odc

Info21 писал(а):
Madzi писал(а):
От чего (на благо общества) готовы отказаться вы ?
Шли бы лучше, коллеги, Блэкбокс на линукс попереносили.

Не... Templates надо в ББ добавить. Где можно о формате odc почитать?
Ибо на входе препроцессора и на выходе оно должно быть.
Можно даже с проверкой синтаксиса сделать.
А вообще на эту тему некоторые рсднцы рекомендуют посмотреть Немерлю.

Автор:  Пётр Кушнир [ Понедельник, 13 Апрель, 2009 16:23 ]
Заголовок сообщения:  Re: Про "кирпич"

Непонятно, зачем вам описание формата odc если с составными документами работают через подсистему Text о чём и описано в соответствующем разделе общедоступной документации. RSDN начитались? :)

Автор:  Валерий Лаптев [ Понедельник, 13 Апрель, 2009 17:10 ]
Заголовок сообщения:  Re: Про "кирпич"

Пётр Кушнир писал(а):
Непонятно, зачем вам описание формата odc если с составными документами работают через подсистему Text о чём и описано в соответствующем разделе общедоступной документации. RSDN начитались? :)

Не... Не нужет мне текст на входе...
Поскольку я собираюсь КП с темплейтами прямо в ББ набирать, а потом отдельной командой его в чистому КП приводить, то, как я понимаю, и исходный, и результат должны быть в формате ББ.
Или я чего-то неправильно понимаю?

Автор:  Пётр Кушнир [ Понедельник, 13 Апрель, 2009 17:16 ]
Заголовок сообщения:  Re: Про "кирпич"

Набирая текст в ББ вы работаете с составным документом. Этот документ, в то же время, может быть обработан программно, используя возможности подсистемы Text, описаные в разделе Документации БлэкБокса: "5. Тексты". Насколько я себе представляю, как раз это и подойдёт для поставленой задачи.

Автор:  Valery Solovey [ Понедельник, 13 Апрель, 2009 17:17 ]
Заголовок сообщения:  Re: Про "кирпич"

Последние 4 сообщения какие-то полезные... Их лучше в отдельную тему.

Автор:  Валерий Лаптев [ Понедельник, 13 Апрель, 2009 17:18 ]
Заголовок сообщения:  Re: Про "кирпич"

Пётр Кушнир писал(а):
Набирая текст в ББ вы работаете с составным документом. Этот документ, в то же время, может быть обработан программно, используя возможности подсистемы Text, описаные в разделе Документации БлэкБокса: "5. Тексты". Насколько я себе представляю, как раз это и подойдёт для поставленой задачи.


Катта рахмат, почитаю внимательнее.
Получается, что уже почти все сделано за нас... :)

Автор:  Info21 [ Понедельник, 13 Апрель, 2009 18:04 ]
Заголовок сообщения:  Re: Про "кирпич"

Валерий Лаптев писал(а):
Катта рахмат, почитаю внимательнее.
Не вполне понял, о чем речь, но впечатление, что насчет как берется текст и с ним что-то делается, стоит посмотреть либо модуль Info21sysEdit, либо шнягу с русскими словами тут viewtopic.php?p=26654#p26654
----
А выделить да, хорошо бы в что-нибудь вроде "Как обращаться с документами *.odc"

Автор:  Axcel [ Понедельник, 13 Апрель, 2009 21:54 ]
Заголовок сообщения:  Re: Про "кирпич"

Info21 писал(а):
Валерий Лаптев писал(а):
Катта рахмат, почитаю внимательнее.
Не вполне понял, о чем речь, но впечатление, что насчет как берется текст и с ним что-то делается, стоит посмотреть либо модуль Info21sysEdit, либо шнягу с русскими словами тут viewtopic.php?p=26654#p26654
----

А еще стоит посмотреть работу со складками на примере Рефал-0. Кстати на тему "темплейтов", Рефал-0 очень даже ...

Автор:  Валерий Лаптев [ Вторник, 14 Апрель, 2009 07:51 ]
Заголовок сообщения:  Re: Как обращаться с документами .odc

Ну вот. Посмотрел.
Плохо, конечно, это в документации описано, но вроде получается, что и шаблоны не очень нужны.
Я правильно понимаю, что можно объявить запись абстрактной и конкретную реализацию оставить наследникам?

Если да, то возможно написать родовой модуль, например, стека с элементом - абстрактной записью. Это и будет параметр - тип.
Тогда модули, использующие этот родовой модуль, должны просто реализовать абстрактную запись - тип элемента стека. А все методы - уже в родовом модуле прописаны.

Автор:  Александр Ильин [ Вторник, 14 Апрель, 2009 08:16 ]
Заголовок сообщения:  Re: Как обращаться с документами .odc

Валерий Лаптев писал(а):
Я правильно понимаю, что ... возможно написать родовой модуль, например, стека с элементом - абстрактной записью. Это и будет параметр - тип.
Правильно вы понимаете.
Валерий Лаптев писал(а):
Плохо, конечно, это в документации описано, но вроде получается, что и шаблоны не очень нужны.
Шаблоны нужны в том случае, если вы захотите непременно хранить в стеке базовый тип (INTEGER, REAL) или напрямую использовать готовую запись, не являющуюся расширением того абстрактного типа. Без шаблонов для этого понадобится создание простого объекта-обёртки:
Код:
TYPE MyRealItem = RECORD (AbstactStack.Item) value: REAL END;
Плюс, если стек основан на шаблоне, то он гарантированно будет содержать только элементы указанного типа, а если основан на абстрактном типе, то в стек можно пометить любого наследника. Следовательно, при получении элемента из стека потребуется приведение типа с проверкой, и на этапе компиляции нет проверки того, что вы только нужные элементы туда помещаете (такую проверку можно реализовать в рантайм).

Автор:  Валерий Лаптев [ Вторник, 14 Апрель, 2009 08:20 ]
Заголовок сообщения:  Re: Как обращаться с документами .odc

Александр Ильин писал(а):
Шаблоны нужны в том случае, если вы захотите непременно хранить в стеке базовый тип (INTEGER, REAL) или напрямую использовать готовую запись, не являющуюся расширением того абстрактного типа. Без шаблонов для этого понадобится создание простого объекта-обёртки:
Код:
TYPE MyRealItem = RECORD (AbstactStack.Item) value: REAL END;
Плюс, если стек основан на шаблоне, то он гарантированно будет содержать только элементы указанного типа, а если основан на абстрактном типе, то в стек можно пометить любого наследника. Следовательно, при получении элемента из стека потребуется приведение типа с проверкой, и на этапе компиляции нет проверки того, что вы только нужные элементы туда помещаете (такую проверку можно реализовать в рантайм).

Да, понятно. Объщий базовый класс и принцип подстановки.
Шаблоны работают на этапе компиляции и реализуют макроподстановку с проверкой синтаксиса (синтаксические макросы по терминологии Кемпбелл-Келли).

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/