Здравствуйте, Mumitroller, Вы писали:
M>Тут недавно было обсуждение поддержки case insensitive для Peg-парсера. Есть ли шансы получить эту поддержку в ближайший месяц?
1) можно юзать такие правила (но, конечно, изврат):
2) сделать специальную версию SourceSnapshot, которая приведет ВЕСЬ текст в нижний либо верхний регистр, но для получения текста наследниками Located будет подсовываться оригинальная версия строки.
Здравствуйте, hardcase, Вы писали:
H>2) сделать специальную версию SourceSnapshot, которая приведет ВЕСЬ текст в нижний либо верхний регистр, но для получения текста наследниками Located будет подсовываться оригинальная версия строки.
Спасибо за подсказку — этот вариант обязательно попробую, если не появится встроенная поддержка.
Это шиза.
H>2) сделать специальную версию SourceSnapshot, которая приведет ВЕСЬ текст в нижний либо верхний регистр, но для получения текста наследниками Located будет подсовываться оригинальная версия строки.
Можно просто перевести строку в верхний регистр, а для получения подстрок использовать свою функцию которая будет работать по исходной строке (не преобразованной). При этом вообще ничего менять не придется.
Хотя конечно было бы лучше действительно сделать наследника SourceSnapshot и в нем все реализовать автоматически.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Все что нужно сделать — это новую версию класса SourceSnapshot.
Ок.
Займусь препроцессором C# (я его таки решил делать внешним парсером), а там придется делать расширение SourceSnapshot, то заодно и регистронезависимую версию SourceSnapshot сделаю.