Известный Болтун
Зарегистрирован: 01 July 2006
Сообщения: 628
Примеры кода: 0
|
Re[2]: Проблемы с приоритетом операторов |
19 January 2007 15:09 |
|
|
|
|
Здравствуйте, Mab, Вы писали:
Mab>Здравствуйте, nikov, Вы писали:
Mab>Все же понятие приоритета и ассоциативности операторов используется в случае, когда грамматика ambiguous, так что приходится выбирать их нескольких потенциально возможных дереьвев разбора.
Mab>В твоем же примере вроде никакой неоднозначности в разборе нет. А именно, разбор (x ? y : z) = true невозможен по той грамматике, которая приведена в стандарте.
Как это соображение согласуется со следующим примером?
Foo(x & x = true);
Здесь вроде бы последовательность действий такова: из двух возможных вариантов разбора выбирается тот, который соответсвует приоритету операторов (при этом игнорируется (1) то, что x & x не классифицируется ни как переменная, ни как доступ к индексатору или свойству, (2) и то, что это не unary-expression). А уже затем выбранный вариант объявляется негодным и возникает ошибка компиляции.
P.S. Я нашел ту тему. Grammar ambiguities in C# 2.0
Данное сообщение получено с сайта RSDN
|
|