OberonCore
https://forum.oberoncore.ru/

TextMappers.Scanner читает кириллицу не так, как латиницу
https://forum.oberoncore.ru/viewtopic.php?f=116&t=3769
Страница 1 из 1

Автор:  Иван Кузьмицкий [ Среда, 18 Январь, 2012 10:22 ]
Заголовок сообщения:  TextMappers.Scanner читает кириллицу не так, как латиницу

Может, такое уже обсуждалось?

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

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

Автор:  Евгений Темиргалеев [ Среда, 18 Январь, 2012 10:44 ]
Заголовок сообщения:  Re: TextMappers.Scanner читает кириллицу не так, как латиниц

Логика в том, что идентификаторы КП считаются строками и без кавычек.
Код:
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 ]
Заголовок сообщения:  Re: TextMappers.Scanner читает кириллицу не так, как латиниц

Но ведь 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).


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

Автор:  Info21 [ Среда, 18 Январь, 2012 16:22 ]
Заголовок сообщения:  Re: TextMappers.Scanner читает кириллицу не так, как латиниц

Иван Кузьмицкий писал(а):
Цитата:
recognized structured subsequences (symbols).
Вот тут как раз и подразумевается специфика КП.
Неточность документации.

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

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

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