OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 24 Январь, 2019 05:01

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




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
СообщениеДобавлено: Среда, 18 Январь, 2012 10:22 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2930
Откуда: г. Ярославль
Может, такое уже обсуждалось?

Есть текст, список имён, каждое имя на своей строке. Напускаю на текст сканер. Если имена латинские, то сканер читает имя целиком, как строчку. А если имена написаны русскими буквами, то каждая буква сканером воспринимается как строчка.

Считаю, это неправильно. Стоит ли патчить TextMappers?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 18 Январь, 2012 10:44 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4488
Откуда: Россия, Орёл
Логика в том, что идентификаторы КП считаются строками и без кавычек.
Код:
PROCEDURE (VAR s: Scanner) Scan*, NEW;
            CASE ch OF
            | "A" .. "Z", "a" .. "z", 0C0X .. 0D6X, 0D8X .. 0F6X, 0F8X .. 0FFX: Name(s)
            | '"': DoubleQuotedString(s)
            | "'": SingleQuotedString(s)
Насколько это правильно --- судить не берусь.

Решение --- либо берите строки в кавычки, как положено, либо сделайте себе специальную модификацию сканера. Патчить (глобально), мне кажется, не стоит.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 18 Январь, 2012 10:59 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2930
Откуда: г. Ярославль
Но ведь TextMappers - достаточно обобщённый модуль:

Цитата:
TextMappers are mappers that use text riders to scan and format structured text.

Scanners are connectable to texts. They allow to scan the sequence of characters and embedded views which form a text for recognized structured subsequences (symbols). The various symbols that a scanner can recognize are defined in terms of scan types (cf. the constants above).


Ни слова о специфике КП и тем более о кодировках. Поэтому русские символы должны сканироваться не каким-то особым способом, а на общих основаниях.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 18 Январь, 2012 16:22 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7947
Откуда: Троицк, Москва
Иван Кузьмицкий писал(а):
Цитата:
recognized structured subsequences (symbols).
Вот тут как раз и подразумевается специфика КП.
Неточность документации.

Патчить ББ не надо, т.к. узнавание идентификаторов -- необходимый элемент текста-как-интерфейса в исполнении Оберонов.
А всё остальное должно быть в кавычках.

Или напишите обёртку для сканера -- ведь все случаи предусмотреть невозможно.
Вы ведь тоже, наверное, обучите свой сканер не всем юникодовским языкам.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

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


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

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


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

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