Поддержка case insensitive в Peg-парсер
От: Mumitroller Беларусь  
Дата: 30.11.10 10:41
Оценка:
Добрый день

Тут недавно было обсуждение поддержки case insensitive для Peg-парсера. Есть ли шансы получить эту поддержку в ближайший месяц?

Спасибо.

Mumitroller.
... << RSDN@Home 1.2.0 alpha 4 rev. 1325>>
Re: Поддержка case insensitive в Peg-парсер
От: hardcase Пират http://nemerle.org
Дата: 30.11.10 11:13
Оценка:
Здравствуйте, Mumitroller, Вы писали:

M>Тут недавно было обсуждение поддержки case insensitive для Peg-парсера. Есть ли шансы получить эту поддержку в ближайший месяц?


1) можно юзать такие правила (но, конечно, изврат):
begin = ("b" / "B") ("e" / "E") ("g" / "G") ("i" / "I") ("n" / "N");


2) сделать специальную версию SourceSnapshot, которая приведет ВЕСЬ текст в нижний либо верхний регистр, но для получения текста наследниками Located будет подсовываться оригинальная версия строки.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[2]: Поддержка case insensitive в Peg-парсер
От: Mumitroller Беларусь  
Дата: 30.11.10 11:16
Оценка:
Здравствуйте, hardcase, Вы писали:

H>2) сделать специальную версию SourceSnapshot, которая приведет ВЕСЬ текст в нижний либо верхний регистр, но для получения текста наследниками Located будет подсовываться оригинальная версия строки.


Спасибо за подсказку — этот вариант обязательно попробую, если не появится встроенная поддержка.

Mumitroller.
... << RSDN@Home 1.2.0 alpha 4 rev. 1325>>
Re: Поддержка case insensitive в Peg-парсер
От: WolfHound  
Дата: 30.11.10 12:57
Оценка:
Здравствуйте, Mumitroller, Вы писали:

2Влад.
Хватит вредничать. Прикрути синтакс.
Там работы на 10 минут.
Автор: WolfHound
Дата: 17.11.10
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[2]: Поддержка case insensitive в Peg-парсер
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.11.10 15:38
Оценка:
Здравствуйте, hardcase, Вы писали:

H>1) можно юзать такие правила (но, конечно, изврат):

H>
H>begin = ("b" / "B") ("e" / "E") ("g" / "G") ("i" / "I") ("n" / "N");
H>


Это шиза.

H>2) сделать специальную версию SourceSnapshot, которая приведет ВЕСЬ текст в нижний либо верхний регистр, но для получения текста наследниками Located будет подсовываться оригинальная версия строки.


Можно просто перевести строку в верхний регистр, а для получения подстрок использовать свою функцию которая будет работать по исходной строке (не преобразованной). При этом вообще ничего менять не придется.

Хотя конечно было бы лучше действительно сделать наследника SourceSnapshot и в нем все реализовать автоматически.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Поддержка case insensitive в Peg-парсер
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.11.10 15:40
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>2Влад.

WH>Хватит вредничать. Прикрути синтакс.
WH>Там работы на 10 минут.
Автор: WolfHound
Дата: 17.11.10


Я не вредничаю. Но делать бессмысленной работы не буду. Это дурь несусветная. Все что нужно сделать — это новую версию класса SourceSnapshot.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Поддержка case insensitive в Peg-парсер
От: hardcase Пират http://nemerle.org
Дата: 30.11.10 16:40
Оценка: 58 (2)
Здравствуйте, VladD2, Вы писали:

VD>Все что нужно сделать — это новую версию класса SourceSnapshot.


Ок.
Займусь препроцессором C# (я его таки решил делать внешним парсером), а там придется делать расширение SourceSnapshot, то заодно и регистронезависимую версию SourceSnapshot сделаю.
/* иЗвиНите зА неРовнЫй поЧерК */
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.