Rambler's Top100
Главная
Новости
Статьи
Форумы
Книги
Коды
Сообщество
Блоги
О нас
 

Логин

Email:
  Пароль:

Войти
Зарегистрироваться
Забыл пароль

Поиск

 Искать :
 
Вперед

Сообщение

nikov


Известный Болтун

Зарегистрирован:
01 July 2006
Сообщения: 628
Примеры кода: 0
 

Re[4]: Баг в компиляторе или...

23 January 2007 23:31  


Здравствуйте, Алексей., Вы писали:

N>>Вопрос 1: Почему в safe-контексте компилятор пытается разобрать '&' как одноместный оператор?

А>При разборе грамматики никакого safe-контекста нет. Это контекст на уровне семантики, но не грамматики.

С этим трудно согласиться. В спецификации (Ecma-334, ISO/IEC 23270) утверждается так:
27.1 Unsafe contexts
The unsafe features of C# are available only in unsafe contexts. An unsafe context is introduced by
including an unsafe modifier in the declaration of a type or member, or by employing an unsafe-statement:
<skipped>
The associated grammar extensions are shown below. For brevity, ellipses (...) are used to represent
productions that appear in preceding clauses.
<skipped>
27.2 Pointer types
In an unsafe context, a type (§11) can be a pointer-type as well as a value-type, a reference-type, or a type parameter.


type:
value-type
reference-type
type-parameter
pointer-type

То есть unsafe-контекст вносит расширения именно в грамматику. Хотя, разумеется, они имеют и семантическое значение.
Я уверен, что вне unsafe-контекста не должно быть даже попыток разбирать соответствующие синтаксические продукции.

N>>Вопрос 2: Допустим, что в начале компилятор пытается разобрать '?' как часть тернарного оператора. Почему он не возвращается и не разбирает его по-другому (как nullable-sign), поcле того, как он не находит двоеточия?

А>Так реализован компилятор от Microsoft.

ИМХО, это ошибочная реализация.




P.S. Я нашел ту тему. Grammar ambiguities in C# 2.0

Данное сообщение получено с сайта RSDN
Наверх
  



Общие вопросы программирования на ASP.NET

 Баг в компиляторе или...nikov  22 January 2007 15:48
 Баг в компиляторе или...sergun  23 January 2007 10:46
 Re: Баг в компиляторе или...Алексей.  23 January 2007 10:32
 Re[2]: Баг в компиляторе или...nikov  23 January 2007 10:42
 Re: Баг в компиляторе или...Алексей.  23 January 2007 10:20
 Re[2]: Баг в компиляторе или...nikov  23 January 2007 12:04
 Re[3]: Баг в компиляторе или...Алексей.  23 January 2007 13:52
 Re[4]: Баг в компиляторе или...nikov  23 January 2007 23:31
 Re[3]: Баг в компиляторе или...dshe  23 January 2007 12:25
 Re[4]: Баг в компиляторе или...nikov  23 January 2007 12:47
 Re[2]: Баг в компиляторе или...nikov  23 January 2007 12:03
 Re[2]: Баг в компиляторе или...nikov  23 January 2007 10:51
 Re[3]: Баг в компиляторе или...Алексей.  23 January 2007 10:58
 Re[2]: Баг в компиляторе или...nikov  23 January 2007 10:37
 Re: Баг в компиляторе или..._FRED_  22 January 2007 16:39
 Re: Баг в компиляторе или...ApsPro  22 January 2007 16:13
 Re[2]: Баг в компиляторе или...nikov  22 January 2007 16:28
 RE: Re[2]: Баг в компиляторе или...Anton  22 January 2007 17:31
 
Наш Киев

Apartments for Rent

Rambler's Top100
Рейтинг@Mail.ru
Идея: Dimon aka Manowar Программирование: Dimon aka Manowar Дизайн: Dan Lebedev
Хостинг от компании Parking.ru
Карта сайта