История изменений
Исправление firkax, (текущая версия) :
Ну я понял вобщем. У тебя есть какой-то старый код в cp1251 и есть новый в utf-8, в обоих имеется кириллица и надо чтобы компилятор понимал и слово «текст» в cp1251 и слово «текст» в utf8, и понимал что это одно и то же слово. Ну, тут нормальный вариант наверно только один. Лексер ни при чём.
Перед компиляцией старого кода конвертируй его из cp1251 в utf8 и дальше работай только в utf8. Тут могли бы быть проблемы, если бы идентификаторы были регистронезависимые (сравнивать букву А и а - это зависит от кодировки), но ты пишешь что у тебя регистрозависимость там, значит этот вопрос нас не волнует, идентификатор это просто последовательность байт, сравнивается побайтово. При этом надо как-то отличать cp1251 и utf8 исходники - это можно либо сделать автоопределением (оно не 100% надёжно, я бы не стал на него полагаться как на единственный источник инфы о кодировке), либо в новых проектах в начале файла писать какую-то условную строку-пометку о том что он utf8 (заодно поможет от случайного пихания его в старый компилятор).
Исправление firkax, :
Ну я понял вобщем. У тебя есть какой-то старый код в cp1251 и есть новый в utf-8, в обоих имеется кириллица и надо чтобы компилятор понимал и слово «текст» в cp1251 и слово «текст» в utf8, и понимал что это одно и то же слово. Ну, тут нормальный вариант наверно только один. Лексер ни при чём.
Перед компиляцией старого кода конвертируй его из cp1251 в utf8 и дальше работай только в utf8. Тут могли бы быть проблемы, если бы идентификаторы были регистронезависимые (сравнивать букву А и а - это зависит от кодировки), но ты пишешь что у тебя регистрозависимость там, значит этот вопрос нас не волнует, идентификатор это просто последовательность байт, сравнивается побайтово. При этом надо как-то отличать cp1251 и utf8 исходники - это можно либо сделать автоопределением (оно не 100% надёжно), либо в новых проектах в начале файла писать какую-то условную строку-пометку о том что он utf8 (заодно поможет от случайного пихания его в старый компилятор).
Исходная версия firkax, :
Ну я понял вобщем. У тебя есть какой-то старый код в cp1251 и есть новый в utf-8, в обоих имеется кириллица и надо чтобы компилятор понимал и слово «текст» в cp1251 и слово «текст» в utf8, и понимал что это одно и то же слово. Ну, тут нормальный вариант наверно только один. Лексер ни при чём.
Перед компиляцией старого кода конвертируй его из cp1251 в utf8 и дальше работай только в utf8. Тут могли бы быть проблемы, если бы идентификаторы были регистронезависимые (сравнивать букву А и а - это зависит от кодировки), но ты пишешь что у тебя регистрозависимость там, значит этот вопрос нас не волнует, идентификатор это просто последовательность байт, сравнивается побайтово. При этом надо как-то отличать cp1251 и utf8 исходники - это можно либо сделать автоопределением, либо в новых проектах в начале файла писать какую-то условную строку-пометку о том что он utf8 (заодно поможет от случайного пихания его в старый компилятор).