Re[7]: [PEG] Вопросы реализации расширяемости
От: fin_81  
Дата: 06.10.11 08:46
Оценка:
Здравствуйте, catbert, Вы писали:

C>У нас вроде как будет:


C>S -> aBd

C>B -> b | bc // новое более приоритетное правило

Поправка
B -> b / bc
Оператор приоритетного выбора '/'. Второй вариант 'bc' никогда не сработает. Можно писать в несколько строк, можно через оператор приоритетного выбора, суть от этого не меняется.
Re[6]: [PEG] Вопросы реализации расширяемости
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.10.11 11:46
Оценка:
Здравствуйте, fin_81, Вы писали:

_>После этого ранее разбираемая строка 'abcd' ошибочна в пег-грамматике, так как менее приоритетное но ранее работавшее правило вообще не будет участвовать в разборе, этого правила нет в новой грамматике.


Ну, и что? Человек изменил грамматику.

_>Теперь вопрос: это так и задумано макросописателем или это ошибка? 50 на 50, кому-то это нужно, кому-то нет.


А, ну да. Отличная логика. Исползуя ее можно до чего угодно договориться. Например:
Выл у человека код:
def a() { 40 }
def b(x) { x + 2 }
...
def y = b(a());

Потом человек его поменял:
def a() { 40 }
def b(x) { x + 2 }
def b(x) { x - 2 }
...
def y = b(a());

и результат поменялся. Ошибка это или так было задумано?

Да без разницы. Если это ошибка, то ее допустил программист. Для парсера это вполне корректный случай.

Человек перекрывший правило мог просто хотеть отменить не нравящуюся ему конструкцию.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: [PEG] Вопросы реализации расширяемости
От: Аноним  
Дата: 06.10.11 11:57
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Самое паршивое решение.

А>Зависимость по порядка инклудов.

Может в самом инклюде приоритет задаывать (т.е. расширить синтаксис инклюда)?
Re[7]: [PEG] Вопросы реализации расширяемости
От: fin_81  
Дата: 06.10.11 12:13
Оценка:
Здравствуйте, VladD2, Вы писали:

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


_>>После этого ранее разбираемая строка 'abcd' ошибочна в пег-грамматике, так как менее приоритетное но ранее работавшее правило вообще не будет участвовать в разборе, этого правила нет в новой грамматике.


VD>Ну, и что? Человек изменил грамматику.


Ссылаясь на название темы, человек _расширил_ грамматику, он не хотел отключать ранее работавшие конструкции и потом обратно перетаскивать ранее работавшую грамматику в свой модуль макросов с правильной расстановкой приоритетов, чтобы парсились уже работавшие конструкции.
Я выразил свое мнение, дальше спорить не буду. Мне это сильно не понравилось при переходе от антлр к пег-грамматикам с их исключающими приоритетами, меня это сильно раздражало.
Re[9]: [PEG] Вопросы реализации расширяемости
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.10.11 21:37
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>Самое паршивое решение.

А>>Зависимость по порядка инклудов.

А>Может в самом инклюде приоритет задаывать (т.е. расширить синтаксис инклюда)?


Можно пример синтаксиса?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.