Re[11]: [PEG] Регистронезависимый парсинг
От: hardcase Пират http://nemerle.org
Дата: 04.05.11 05:52
Оценка:
Здравствуйте, alvas, Вы писали:

A>Здравствуйте, VladD2, Вы писали:


VD>>Можно. Можно парсить любой однозначный язык. Главное чтобы у него не было множества деревьев разбора. Т.е. чтобы он не парсился (правильно) более чем одним способом.


A>Можешь привести пример неоднозначного языка?


Русский
/* иЗвиНите зА неРовнЫй поЧерК */
Re[11]: [PEG] Регистронезависимый парсинг
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.05.11 10:38
Оценка: 1 (1) :)
Здравствуйте, alvas, Вы писали:

VD>>Можно. Можно парсить любой однозначный язык. Главное чтобы у него не было множества деревьев разбора. Т.е. чтобы он не парсился (правильно) более чем одним способом.


A>Можешь привести пример неоднозначного языка?


Русский.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: [PEG] Регистронезависимый парсинг
От: Ziaw Россия  
Дата: 05.05.11 12:56
Оценка:
Здравствуйте, alvas, Вы писали:

A>Здравствуйте, VladD2, Вы писали:


A>Для каких типов документов PegParser неприменим?

A>Например кривой html он потянет?

Синтаксис на отступах, имхо, нельзя построить полностью на правилах грамматики. Придется колдовать в обработчиках.
Re[8]: [PEG] Регистронезависимый парсинг
От: hardcase Пират http://nemerle.org
Дата: 05.05.11 13:09
Оценка: +1
Здравствуйте, Ziaw, Вы писали:

Z>Синтаксис на отступах, имхо, нельзя построить полностью на правилах грамматики. Придется колдовать в обработчиках.


Можно сделать препроцессор, который требуемым образом расставит скобочки в строке.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[9]: [PEG] Регистронезависимый парсинг
От: Ziaw Россия  
Дата: 05.05.11 13:55
Оценка:
Здравствуйте, hardcase, Вы писали:

Z>>Синтаксис на отступах, имхо, нельзя построить полностью на правилах грамматики. Придется колдовать в обработчиках.


H>Можно сделать препроцессор, который требуемым образом расставит скобочки в строке.


ну есть нюансы:
на питоне:
print(1)
  print(1) # fail


peg с препроцессором:
print(1); {
  print(1); } // ok


А вообще, поинт в том, что одного пега не всегда недостаточно.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.