Дают ли макросы Nemerle возможность добавить в язык поддержку больших целых чисел (произвольной разрядности)?
Мне нужно, чтобы литералы, слишком большие для хранения в ulong (или имеющие сооветствующий суффикс), на этапе компиляции автоматически преобразовывались в new object creation expression для BigInteger.
Здравствуйте, nikov, Вы писали:
N>Дают ли макросы Nemerle возможность добавить в язык поддержку больших целых чисел (произвольной разрядности)?
Нет. Макрос на вход получает AST, на выход отдает другое AST. Определить, что в произвольном месте следует применить макрос, без явного указания этого, компилятор не может.
Однако, если их как-то выделять литералом, то такое скорее всего возможно. Можно посмотреть тут
Здравствуйте, ie, Вы писали:
N>>Дают ли макросы Nemerle возможность добавить в язык поддержку больших целых чисел (произвольной разрядности)?
ie>Нет. Макрос на вход получает AST, на выход отдает другое AST. Определить, что в произвольном месте следует применить макрос, без явного указания этого, компилятор не может.
А как насчет того, чтобы встроить такую поддержку в сам язык?
Здравствуйте, nikov, Вы писали:
N>Дают ли макросы Nemerle возможность добавить в язык поддержку больших целых чисел (произвольной разрядности)? N>Мне нужно, чтобы литералы, слишком большие для хранения в ulong (или имеющие сооветствующий суффикс), на этапе компиляции автоматически преобразовывались в new object creation expression для BigInteger.
Без изменения компилятор это сделать скорее всего не удастя. Но не сложно изменить его, и ввести некий механиз позволяющий распарсить числовой литерал в строку, и уже потом обработать его макросом.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.