OberonCore https://forum.oberoncore.ru/ |
|
B22: Компилятор игнорирует недопустимые для КП юникод-лит... https://forum.oberoncore.ru/viewtopic.php?f=116&t=1837 |
Страница 1 из 1 |
Автор: | Евгений Темиргалеев [ Суббота, 12 Сентябрь, 2009 22:40 ] |
Заголовок сообщения: | B22: Компилятор игнорирует недопустимые для КП юникод-лит... |
Компилятор игнорирует недопустимые для КП юникод-литеры (c > 0FFX) (исходный заголовок: "Юникод в 1.6 Ominc / 1.6 community") Уважаемый Иван Горячев, кланяюсь в ножки! И за Unicode tools, но самое главное за то, что удалось обнаружить ОПЕЧАТКУ в исходнике, благодаря Вашему допиливанию ББ до поддержки юникода. В 1.6 от оминк уже грешил на баг в компилере. Код: (* Вызов сравнителя *) Предпоследняя строчка появилась когда начались "проблемы". Она отрабатывает, на ASSERT-е --- останов ("проблема")...... "Вызов сравнителя" был процедурой с VAR параметром res. Процедура была убрана, код вставлен на место вызова в процедуру с параметром res и переменной cres: INTEGER. Когда перепечатывал ASSERT (менял res на cres), впечатал юникодовую русскую эс. Которая стандартным сканером полностью игнорируется... и cres превращается в res.cres := -2; filepar.cmpr(par, oi.next.name, cres); IF ~((-1 <= cres) & (cres <= 1)) THEN HALT(100) END; ASSERT((-1 <= cres) & (cres <= 1), 100); Код: 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; поправил опечатку в имени модуля |
Автор: | Иван Горячев [ Понедельник, 14 Сентябрь, 2009 04:33 ] |
Заголовок сообщения: | Re: Юникод в 1.6 Ominc / 1.6 community |
Классно. На самом деле вот это конкретное моё исправление - попытка реализации русских идентификаторов. Весьма кривая, кстати И неудавшаяся. А после полувыхода официального 1.6 я нашу версию и вовсе забросил. И, кстати, это на самом деле баг в компиляторе - модуль то DevCPS |
Автор: | Евгений Темиргалеев [ Понедельник, 14 Сентябрь, 2009 09:28 ] |
Заголовок сообщения: | Re: Юникод в 1.6 Ominc / 1.6 community |
Иван Горячев писал(а): И, кстати, это на самом деле баг в компиляторе - модуль то DevCPS Не понял, что Вы имеете в виду; поясните, пожалуйста.Иван Горячев писал(а): Весьма кривая, кстати И неудавшаяся. нет худа без добра..
|
Автор: | Иван Горячев [ Вторник, 15 Сентябрь, 2009 01:59 ] |
Заголовок сообщения: | Re: Юникод в 1.6 Ominc / 1.6 community |
Евгений Темиргалеев писал(а): Не понял, что Вы имеете в виду; поясните, пожалуйста. В смысле процедура DevCPS.Get игнорирует юникодные символы (Хотя согласно Сообщению они недопустимы). DevCPS - модуль компилятора. Значит можно говорить что это - баг компилятора |
Автор: | Евгений Темиргалеев [ Вторник, 15 Сентябрь, 2009 09:10 ] |
Заголовок сообщения: | Re: Юникод в 1.6 Ominc / 1.6 community |
Согласен. Была бы ошибка "некорректный символ" не было бы и проблем с опечатками... В официальной версии юникодовые символы (+немаскирующиеся вьюшки) игнорирует всё же DevCPM.Get к которой DevCPS.Get обращается для чтения следующего символа текста |
Автор: | Евгений Темиргалеев [ Четверг, 29 Август, 2013 14:03 ] |
Заголовок сообщения: | Re: Юникод в 1.6 Ominc / 1.6 community |
письмо в рассылке 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 ] |
Заголовок сообщения: | Re: Компилятор игнорирует недопуст. юникод-литеры (>0FFX) |
Решение: viewtopic.php?p=82262#p82262 |
Автор: | Роман М. [ Воскресенье, 05 Январь, 2014 22:30 ] |
Заголовок сообщения: | Re: B22: Компилятор игнорирует недопустимые для КП юникод-ли |
Решение Ивана Горячева мне симпатизирует больше чем решение Цинна из-за более гибкого подхода к многоязычности. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |