OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 23 Июль, 2019 22:56

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Component Pascal на github
СообщениеДобавлено: Пятница, 16 Май, 2014 21:04 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Отправил тут пулреквест: https://github.com/github/linguist/pull/1198
Надеюсь что вольют. Но у меня не получилось протестировать.

Кто умеет готовить Ruby протестируйте плиз и отпишитесь там по возможности.

Режим выбрал Pascal (проверить как оно с CP можно тут http://ace.c9.io/build/kitchen-sink.html)

Еще не мешало бы научить Ace понимать Component Pascal. Теоретически достаточно допилить плагин valexey'я: https://github.com/vladfolts/oberonjs/b ... tmLanguage
Ace вроде как поддерживает такой формат.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Пятница, 16 Май, 2014 21:08 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Вот, кстати, там уже автоматическая сборка не прошла. Не шарю я в рубях... :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Пятница, 16 Май, 2014 23:21 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
В общем вроде все хорошо. Правда есть некоторые непонятки с odc.

Кто хорошо владеет ангельским? Помогайте там :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Суббота, 17 Май, 2014 12:20 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Написал комментарий
https://github.com/github/linguist/pull/1198

Take a look :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Суббота, 17 Май, 2014 13:00 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
ilovb писал(а):
В общем вроде все хорошо. Правда есть некоторые непонятки с odc.

Кто хорошо владеет ангельским? Помогайте там :)

Какие именно "непонятки с odc" и в чём сложности с английским?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Суббота, 17 Май, 2014 13:03 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
ilovb писал(а):
Вот, кстати, там уже автоматическая сборка не прошла. Не шарю я в рубях... :(

Вроде бы лексер Pygments пишется на Python. За основу можно взять Modula2Lexer.

Как бонус от разработки лексера для Pygments:
http://pygments.org/faq/#who-uses-pygments


Последний раз редактировалось Роман М. Суббота, 17 Май, 2014 13:09, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Суббота, 17 Май, 2014 13:07 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
ilovb писал(а):
Еще не мешало бы научить Ace понимать Component Pascal.
Что тогда? Разработку на КП тогда тоже в веб-браузере можно делать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Суббота, 17 Май, 2014 14:32 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Ну на сколько я понял в качестве онлайн редактора в гитхабе как раз и есть Ace. (кнопочка Edit)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Суббота, 17 Май, 2014 14:33 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Роман М. писал(а):
ilovb писал(а):
В общем вроде все хорошо. Правда есть некоторые непонятки с odc.

Кто хорошо владеет ангельским? Помогайте там :)

Какие именно "непонятки с odc" и в чём сложности с английским?

Я так понимаю, сложность состоит в том, что нужно написать лексер на Руби, на вход получающий *.odc, на выходе - форматированный текст.
Видимо так.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Суббота, 17 Май, 2014 14:39 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Роман М. писал(а):
Какие именно "непонятки с odc" и в чём сложности с английским?

Непонятно как сделать чтобы гитхаб считал такие файлы компонентным паскалем.
Может там Text only поставить... но не знаю будет ли это правильно. Формат то бинарный.

А английский у меня на уровне "привет", "спасибо", "пока". Потому и прошу помощи.

Ну Дмитрий там уже достаточно хорошо все объяснил (я б такое не сгенерил :)) За что ему большое спасибо.


Последний раз редактировалось ilovb Суббота, 17 Май, 2014 14:41, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Суббота, 17 Май, 2014 14:40 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Димыч писал(а):
Я так понимаю, сложность состоит в том, что нужно написать лексер на Руби, на вход получающий *.odc, на выходе - форматированный текст.
Видимо так.

Для начала хоть бы определялись как Component Pascal.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Суббота, 17 Май, 2014 19:15 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
Димыч писал(а):
Роман М. писал(а):
ilovb писал(а):
В общем вроде все хорошо. Правда есть некоторые непонятки с odc.

Кто хорошо владеет ангельским? Помогайте там :)

Какие именно "непонятки с odc" и в чём сложности с английским?

Я так понимаю, сложность состоит в том, что нужно написать лексер на Руби, на вход получающий *.odc, на выходе - форматированный текст.
Видимо так.

Не видел ни одного примера лексера языка, у которого на входе был бы бинарный файл.


Формат ODC - это большое препятствие для распространения программ языка КП, как вы могли наблюдать сами.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Суббота, 17 Май, 2014 19:38 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
pchaigno писал(а):
At the moment, linguist ignores binary files.
I don't think it would be a good idea to change this because:

In any case, binary files won't be highlighted and it's the main purpose of linguist (detect language for Pygments to highlight).
The statistics are currently computed by counting the number of lines of each file of each language. It wouldn't make any sense for binary files.

https://github.com/github/linguist/pull/1198


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Суббота, 17 Май, 2014 21:25 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Если ни у кого нет замечаний/предложений, то оставляю пулреквест как есть.

Когда протестим лексер, сделаем еще один пулреквест (если этот уже вольют к тому времени)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Воскресенье, 18 Май, 2014 09:43 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Глядя на разворачивающиеся события в отношении лексера, а также в свете грядущей работы над ББ 2.0, хочу расширить идею сохранения исходников в plaintext.

Уже сейчас можно сохранять исходник в виде текста. Однако, при этом теряется информация о форматировании текста и вложенные вьюшки.

Для решения этих проблем можно изменить формат хранения, изменив его с бинарного на текстовый, но с сохранением семантики.

Документы сохраняются через Documents.ExportDocument. Его можно попробовать переписать и, в случае, если это текстовый документ, сохранять текст как текст и форматирование, приведенное к бинарному виду. Любую бинарную информацию записывать в каком-нибудь из форматов для хранения бинарных данных в тексте, вроде BASE64, Ascii85 или basE91.

Можно использовать высокоуровневый текстовый формат для хранения.

Получится что-то вроде такого:

Код:
1 ODC
2 Store: DJ+*.@<*K0@<6L(Df-\0Ec5e;DffZ(EZee.Bl.9pF"AGXBPCsi+DGm>@3BB/F*&OCAfu2/AKY
3 MODULE AggTest;
(* Далее идет текст модуля *)

...

(* следующая строка — вложенная вьюшка, например, командер. *)
4 Store: (DIb:@FD,*)+C]U=@3BN#EcYf8ATD3s@q?d$AftVqCh[NqF<G:8+EV:.+Cf>-FD5W8ARlolDIa
END AggTest.
5 9jqo^BlbD-BleB1DJ+*+F(f,q/0JhKF<GL>Cj@.4Gp$d7F!,L7@<6@)/0JDEF<G%<+EV:2F!,


Нумерация не входит в сам файл и представлена лишь для целей объяснения.

Строка 1 - тег файла, сейчас эту роль выполняет docTag (CDOo).
Затем идет 2 - информация из Store, непредставимая в текстовом виде.
3 - собственно модуль
4 - вложенная Store, в обязательном порядке начинается и заканчивается переводом каретки; это позволит проще обрабатывать вложенные Store.
5 - информация о форматировании, или, обобщая, продолжается Store.

Это позволит сохранить семантику работы фреймворка и, что более важно, позволит инструментам вроде git diff корректно работать с файлами как с текстом.

Ну а лексер можно научить игнорировать текст от Store: до конца строки, как комментарий или вообще скрывать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Воскресенье, 18 Май, 2014 14:09 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
В целях отслеживания версий, дифа и мерджа мне кажется более правильным использовать "деревянный" формат типа XML или Json.
Для них уже есть и алгоритмы и даже готовые инструменты.

Нет нужды делать сам odc текстовым. Можно сделать просто конвертер.

И вообще, имхо, документацию можно и нужно рассматривать как нечто, требующее сборки и тестирования. Т.е. можно разделить на "исходник" и "рабочий формат".
Вот исходник в XML к примеру. А рабочий формат odc.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Воскресенье, 18 Май, 2014 15:13 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
ilovb писал(а):
В целях отслеживания версий, дифа и мерджа мне кажется более правильным использовать "деревянный" формат типа XML или Json.
Для них уже есть и алгоритмы и даже готовые инструменты.

Нет нужды делать сам odc текстовым. Можно сделать просто конвертер.

И вообще, имхо, документацию можно и нужно рассматривать как нечто, требующее сборки и тестирования. Т.е. можно разделить на "исходник" и "рабочий формат".
Вот исходник в XML к примеру. А рабочий формат odc.

Это уже обсуждалось в темах:
  1. Особенности версионности с составными документами
  2. BlackBox Merge tool
  3. Про diff для .odc
  4. Системы контроля версий


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Воскресенье, 18 Май, 2014 15:38 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
Писал уже ранее на тему версионности в сообщении #p81469

Сохранять документ можно в том виде, котором средства VCS могут с ним работать, то есть в текстовый формат. Этот текстовый формат может включать исходник в кодировке UTF-8 и мета-информацию в виде придатка в конце файла после специального маркера-спец-символа, закодированную StdCoder/AsciiCoder или подобные им. Мета-информация может содержать модели отображения (view), форматирование документа, fold, штамп времени и прочее.
При этом, предполагается, что решать конфликты версий будет пользователь при помощи Блэкбокса. Увы, такого инструмента пока нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Воскресенье, 18 Май, 2014 16:30 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Я там не очень понятно высказался. Я имел в виду только документацию. Что касается замены odc, то я с тобой полностью солидарен , Роман (на данный момент).

Пусть конец файла обозначается специальным символом (viewcode, например) и за ним идет метаинформация в base64.


Последний раз редактировалось ilovb Воскресенье, 18 Май, 2014 16:43, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Воскресенье, 18 Май, 2014 16:40 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
Ещё важное, на мой взгляд, замечание:

Представьте себе что наши потомки через 20 лет не смогут распознать содержимое документов. Поэтому важно написать документ наподобие RFC (желательно на английском), по которому можно было бы создать ПО для чтения документов. Это ещё один довод в пользу простоты и открытости формата документа.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB