OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 14:00

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




Форум закрыт Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 8 ] 
Автор Сообщение
СообщениеДобавлено: Суббота, 12 Сентябрь, 2009 22:40 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Компилятор игнорирует недопустимые для КП юникод-литеры (c > 0FFX)
(исходный заголовок: "Юникод в 1.6 Ominc / 1.6 community")

Уважаемый Иван Горячев, кланяюсь в ножки!

И за Unicode tools, но самое главное за то, что удалось обнаружить ОПЕЧАТКУ в исходнике, благодаря Вашему допиливанию ББ до поддержки юникода. В 1.6 от оминк уже грешил на баг в компилере.
Код:
               (* Вызов сравнителя *)
               cres := -2;
               filepar.cmpr(par, oi.next.name, cres);
               IF ~((-1 <= cres) & (cres <= 1)) THEN HALT(100) END;
               ASSERT((-1 <= cres) & (cres <= 1), 100);
Предпоследняя строчка появилась когда начались "проблемы". Она отрабатывает, на ASSERT-е --- останов ("проблема")...... "Вызов сравнителя" был процедурой с VAR параметром res. Процедура была убрана, код вставлен на место вызова в процедуру с параметром res и переменной cres: INTEGER. Когда перепечатывал ASSERT (менял res на cres), впечатал юникодовую русскую эс. Которая стандартным сканером полностью игнорируется... и cres превращается в res.
Код:
   PROCEDURE DevCPM.Get* (VAR ch: SHORTCHAR);
      VAR ch1: CHAR;
   BEGIN
      REPEAT in.ReadChar(ch1); INC(curpos) UNTIL (ch1 < 100X) & (ch1 # TextModels.viewcode);
      ch := SHORT(ch1)
   END Get;
Сравните с:
Код:
   PROCEDURE DevCPM.Get* (VAR ch: SHORTCHAR);
   VAR ch1 : CHAR;
   BEGIN
      REPEAT in.ReadChar(ch1); INC(curpos) UNTIL ch1 # TextModels.viewcode;
      ch := UniLang.Short(ch1);
   END Get;

поправил опечатку в имени модуля


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникод в 1.6 Ominc / 1.6 community
СообщениеДобавлено: Понедельник, 14 Сентябрь, 2009 04:33 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Классно. На самом деле вот это конкретное моё исправление - попытка реализации русских идентификаторов. Весьма кривая, кстати :oops: И неудавшаяся. А после полувыхода официального 1.6 я нашу версию и вовсе забросил. И, кстати, это на самом деле баг в компиляторе - модуль то DevCPS ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникод в 1.6 Ominc / 1.6 community
СообщениеДобавлено: Понедельник, 14 Сентябрь, 2009 09:28 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Иван Горячев писал(а):
И, кстати, это на самом деле баг в компиляторе - модуль то DevCPS ;)
Не понял, что Вы имеете в виду; поясните, пожалуйста.
Иван Горячев писал(а):
Весьма кривая, кстати :oops: И неудавшаяся.
нет худа без добра.. :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникод в 1.6 Ominc / 1.6 community
СообщениеДобавлено: Вторник, 15 Сентябрь, 2009 01:59 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Евгений Темиргалеев писал(а):
Не понял, что Вы имеете в виду; поясните, пожалуйста.


В смысле процедура DevCPS.Get игнорирует юникодные символы (Хотя согласно Сообщению они недопустимы). DevCPS - модуль компилятора. Значит можно говорить что это - баг компилятора


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникод в 1.6 Ominc / 1.6 community
СообщениеДобавлено: Вторник, 15 Сентябрь, 2009 09:10 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Согласен. Была бы ошибка "некорректный символ" не было бы и проблем с опечатками...

В официальной версии юникодовые символы (+немаскирующиеся вьюшки) игнорирует всё же DevCPM.Get к которой DevCPS.Get обращается для чтения следующего символа текста


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Юникод в 1.6 Ominc / 1.6 community
СообщениеДобавлено: Четверг, 29 Август, 2013 14:03 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
письмо в рассылке
Date: Thu, 29 Aug 2013 10:38:16 +0000
From: Campbell, Robert (Selex ES, UK)
Subject: [BLACKBOX] BlackBox (compiler) patches - report illegal charcters.
Цитата:
Helmut, (All)

You recently asked for a collection of patches.

One I had forgotten was to stop the compiler quietly ignoring illegal Unicode characters in source code.

It has just saved me lots of wasted time, I accidently typed a Unicode ‘-‘ instead of an ASCII one. It looks the same in the Courier font I use for complex mathematical / numerical source code.

Because I was using this patch the error showed up immediately.

I can’t remember the details (file name etc), but can look if necessary. Anyway, please add it to your list if it is not already there.

Regards
Robert


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 06 Ноябрь, 2013 19:48 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Решение: viewtopic.php?p=82262#p82262


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 05 Январь, 2014 22:30 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
Решение Ивана Горячева мне симпатизирует больше чем решение Цинна из-за более гибкого подхода к многоязычности.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Форум закрыт Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 8 ] 

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


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

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


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

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