Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, hardcase, Вы писали:
WH>>>Семантика ПЕГа людям не понятна.
WH>>>Вот ты например посадил в парсер C# ошибку связанную с оператором упорядоченного выбора.
WH>>>А вот не скажу где. Попробуй найди сам какая часть грамматики никогда не будет вызвана.
H>>Не понял. В чем заключается ошибка?
WH>Я вроде бы написал.
WH>Другими словами есть куски грамматики которые никогда не используются.
Ну так указал бы. Грамматики такого размера в одиночку писать и вычитывать тяжело. К тому же она претерпела хренову тучу изменений.
Беглым осмотром нашел пока вот это (эти правила я давно хотел нафиг переписать, да все не соберусь):
newArray_1 : Expr = anyNonArrayType "["s expressionList "]"s rankSpecifier* complexInitializer?;
newArray_2 : Expr = anyNonArrayType rankSpecifier+ complexInitializer;
newExpression : Expr = "new"S (newObject_1 / newArray_1 / newArray_2 / newObject_2 / newArray_3 / newAnonymous);