Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Lloyd, Вы писали:
L>>А побитовое или как мило будет выглядеть, просто загляденье
L>>(_|_)
VD>Это будет просто ошибкой. Пробелы нужно ставить обязательно.
На самом деле вполне себе работает и парсится однозначно.
_ = (_|_) (1, 2)
Вот такое правда не совсем правильно отрабатывает
(_|_) (1, 2)
Вместо ожидаемого W:unused имеем E:void!=int. Не могу сказать в какой степени это можно поправить, в общем-то это частный бага #812.
Здравствуйте, deniok, Вы писали:
D>Это во многих языках так. Wildcard не оператор, скорее ключевое слово, типа public. Нельзя же писать publicvar вместо public var
Нет, тут другое. Парсер Nemerle построен с целью, что можно строить любые операторы для использования макросами или перегрузки. Парсер склеивает определенный набор символов предназначенных для операторов, как один токен. Ну например "<>+=" — один оператор. Он не разбирается что это может быть несколько операторов. Он вообще не лезет в семантику операторов. Такой функциональности нет. Если несколько операторов идет подряд, то они должны разделяться whitespace'ами. То же самое и для символьных идентификаторов, то что написал ты. Но если операторы и идентификаторы(строки или цифры) перемешаны с операторами, то требования разделения нет. То есть "sum1+sum2" вполне корректно. И значит если "_" не оператор, то выражение "_==_" вполне корректно.
Здравствуйте, Иванков Дмитрий, Вы писали:
ИД>Вместо ожидаемого W:unused имеем E:void!=int. Не могу сказать в какой степени это можно поправить, в общем-то это частный бага #812.
Афигеть. Хотел пошутить, а нашел багу.
... << RSDN@Home 1.2.0 alpha rev. 786>>
Здравствуйте, GlebZ, Вы писали:
GZ>Я о другом. Требование разделения разных операторов определяется особенностями реализации токенайзера для более полного покрытия всех возможных вариантов операторов.
Я не в полне уверен... Дело в том, что внутри идетнификаторов "_" допустим и является просто символом.
Так что вполне возможно, что я не прав и при парсинге операторов он тоже воспринимается как одтельная лексема.
GZ>И токенайзер в Nemerle получается разделяет понятия "_" и "_a"?
Это да. Причем от оба являются указанием компилятору. "_" говорит ему, что мы опустили имя переменной, а "_a", что мы создали переменную для которой не недо контролировать используется ли она в программе или нет.
... << RSDN@Home 1.2.0 alpha rev. 637>>