Наткнулся на проблему при использовании Peg — при компиляции выдается ошибка:
The return type of rule 'rule12' is 'System.Collections.Generic.List[int]', but require type is 'List[int]'. All entries in one OrderedChoice must have same return type.
Может быть кто-нибудь подскажет, что это за List[int] и где он находится? Я посмотрел в генерируемый код, но не нашел там никаких других списков, кроме SCG.List.
Здравствуйте, Mumitroller, Вы писали:
M>Добрый день.
M>Наткнулся на проблему при использовании Peg — при компиляции выдается ошибка:
M>The return type of rule 'rule12' is 'System.Collections.Generic.List[int]', but require type is 'List[int]'. All entries in one OrderedChoice must have same return type.
Это баг, похоже там слишком примитивная проверка на соответствие типов в операторе приоритетного выбора.
Здравствуйте, Mumitroller, Вы писали:
M>Наткнулся на проблему при использовании Peg — при компиляции выдается ошибка: M>The return type of rule 'rule12' is 'System.Collections.Generic.List[int]', but require type is 'List[int]'. All entries in one OrderedChoice must have same return type.
Очень злая бага. Буду чинить.
Пока можно использовать обходной маневр.
Здравствуйте, Mumitroller, Вы писали:
M>The return type of rule 'rule12' is 'System.Collections.Generic.List[int]', but require type is 'List[int]'. All entries in one OrderedChoice must have same return type. M>Может быть кто-нибудь подскажет, что это за List[int] и где он находится? Я посмотрел в генерируемый код, но не нашел там никаких других списков, кроме SCG.List.
Хотя это и оказался баг в PegGrammar, но мое чутье подсказывает, что кроме всего прочего присутствует ошибка и в грамматике. Больно уж странно, что не циклическому правилу требуется возвращать список.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Хотя это и оказался баг в PegGrammar, но мое чутье подсказывает, что кроме всего прочего присутствует ошибка и в грамматике. Больно уж странно, что не циклическому правилу требуется возвращать список.
Это правило не циклическое только снаружи, а внутри оно очень даже циклическое. Что-то вроде: