Текущая цель - чтобы при наличии в исходнике кириллицы не сбивалась позиция. Пока что, если есть кириллица (даже в комментариях), место ошибки компиляции показывается криво.
При том, в комментариях и строковых литералах кириллица допустима и работает, при формате файла ЮТФ-8.
Вторая цель - перевести парсер на широкие буквы, либо ЮТФ-16, либо ЮТФ-32. В принципе, UCS-16 (2 байта, игнорируя суррогатные пары) для кириллицы должно хватить. Потери будут таковы:
Код: Выделить всё
A: Most supplementary characters (expressed with surrogate pairs in UTF-16) are not too common. However, that does not mean that supplementary characters should be neglected. Among them are a number of individual characters that are very popular, as well as many sets important to East Asian procurement specifications. Among the notable supplementary characters are:
many popular emoji and emoticons
symbols used for interoperating with Wingdings and Webdings
numerous small sets of CJK characters important for procurement, including personal and place names
variation selectors used for all ideographic variation sequences
numerous minority scripts important for some user communities
some highly salient historic scripts, such as Egyptian hieroglyphics
Где куски кода для работы с кириллицей?
ПРоблемой было то, что понимался только правильный юникод, при неправильном строчка просто резалась. Это я вроде поправил. На данную секунду правильный (я надеюсь) код чтения УТФ8 из потока находится в Proba.Mod, а код чтения из буферизованного потока - в TextUtils.Mod (процедура что-то.Add). Причём код чтения из буферизованного потока я переписал, но не тестировал. Остаётся только молиться, конечно же.