Re[4]: Частичное применение
От: Иванков Дмитрий Россия  
Дата: 12.01.08 12:42
Оценка:
Здравствуйте, VladD2, Вы писали:

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


L>>А побитовое или как мило будет выглядеть, просто загляденье

L>>(_|_)

VD>Это будет просто ошибкой. Пробелы нужно ставить обязательно.


На самом деле вполне себе работает и парсится однозначно.
_ = (_|_) (1, 2)


Вот такое правда не совсем правильно отрабатывает
(_|_) (1, 2)

Вместо ожидаемого W:unused имеем E:void!=int. Не могу сказать в какой степени это можно поправить, в общем-то это частный бага #812.
Re[8]: Частичное применение
От: GlebZ Россия  
Дата: 12.01.08 12:55
Оценка:
Здравствуйте, deniok, Вы писали:

D>Это во многих языках так. Wildcard не оператор, скорее ключевое слово, типа public. Нельзя же писать publicvar вместо public var

Нет, тут другое. Парсер Nemerle построен с целью, что можно строить любые операторы для использования макросами или перегрузки. Парсер склеивает определенный набор символов предназначенных для операторов, как один токен. Ну например "<>+=" — один оператор. Он не разбирается что это может быть несколько операторов. Он вообще не лезет в семантику операторов. Такой функциональности нет. Если несколько операторов идет подряд, то они должны разделяться whitespace'ами. То же самое и для символьных идентификаторов, то что написал ты. Но если операторы и идентификаторы(строки или цифры) перемешаны с операторами, то требования разделения нет. То есть "sum1+sum2" вполне корректно. И значит если "_" не оператор, то выражение "_==_" вполне корректно.
Re[5]: Частичное применение
От: Lloyd Россия  
Дата: 12.01.08 13:46
Оценка:
Здравствуйте, Иванков Дмитрий, Вы писали:

ИД>Вместо ожидаемого W:unused имеем E:void!=int. Не могу сказать в какой степени это можно поправить, в общем-то это частный бага #812.


Афигеть. Хотел пошутить, а нашел багу.
... << RSDN@Home 1.2.0 alpha rev. 786>>
Re[7]: Частичное применение
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.01.08 12:56
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>Я о другом. Требование разделения разных операторов определяется особенностями реализации токенайзера для более полного покрытия всех возможных вариантов операторов.


Я не в полне уверен... Дело в том, что внутри идетнификаторов "_" допустим и является просто символом.
Так что вполне возможно, что я не прав и при парсинге операторов он тоже воспринимается как одтельная лексема.

GZ>И токенайзер в Nemerle получается разделяет понятия "_" и "_a"?


Это да. Причем от оба являются указанием компилятору. "_" говорит ему, что мы опустили имя переменной, а "_a", что мы создали переменную для которой не недо контролировать используется ли она в программе или нет.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.