LINUX.ORG.RU
ФорумTalks

SEXpy - Python на S-выражениях, зацените поделие :)


0

0

На выходных было совсем нечего делать, пришлось прикрутить к Питону альтернативный синтаксис на S-выражениях. Типа (def (hello name) (print (% "Hello %s!" name))). Этот чудо-язык компилируется в питоновский байт-код. Или можно генерировать код прямо на лету из питоновских программ. Если на следующих выходных будет опять нечего делать, напишу транслятор обычного Питона в S-выражения и обратно. :)

http://python.org/pypi/sexpy, заценяйте! :D

На ЛОРе завелся секспитуальный маньяк! =))))))

anonymousI
()

А, да, забыл, у него есть ещё интерактивная оболочка, правда, (пока) без автодополнения. :)

ero-sennin ★★
() автор топика

>SEXpy - Python на S-выражениях

СекспИстон.

Sun-ch
()

Делать тебе больше нечего? Лучше бы сварганил аналог pyrex'а который генерит нативный код...

Macil ★★★★★
()
Ответ на: комментарий от Macil

> аналог pyrex'а который генерит нативный код...

Думаешь, это так легко и просто! Да и есть уже Pyrex. :)

ero-sennin ★★
() автор топика

> На выходных было совсем нечего делать, пришлось прикрутить к Питону альтернативный синтаксис на S-выражениях.

Главное не останавливаться на достигнутом! Теперь надо прикрутить альтернативный whitespace-синтаксис! Даёшь CMS на whitespace!

Lumi ★★★★★
()

Жесть.

# downloads 0 :-)

А что нибудь ещё с ним можно делать кроме как have se^wfun

Т.е. я так понимаю что макросов это всё равно не даст?

redvasily
()
Ответ на: комментарий от redvasily

> # downloads 0

Там счётчик afaic обновляется раз в сутки. :)

> А что нибудь ещё с ним можно делать кроме как have se^wfun

> Т.е. я так понимаю что макросов это всё равно не даст?

А нафиг нужны макросы, если есть функции высшего порядка,
замыкания и метаклассы? ;) Хотя можно делать, например, так:

>>> import sexpy
>>> def do_n_times(code, n):
...     n_times = [code] * 3
...     exec sexpy.compile(n_times)
...
>>> do_n_times(['print', 42], 3)
42
42
42
>>> do_n_times(['for', 'i', ['range', 3], ['print', 'i']], 2)
0
1
2
0
1
2

Можно и более хитрые вещи делать, если подумать. Или можно таким
макаром быстро и легко компилировать другие несложные языки в
питоний байт-код. Фиг знает, надо проявлять фантазию. :)

ero-sennin ★★
() автор топика

Я б в обратку заинтересовался прикручиванием питонского синтаксиса к D. Долой фигурные скобки, даёшь читабельность.

yk4ever
()
Ответ на: комментарий от yk4ever

Посмотри на Nemerle, там такой синтаксис есть.

anonymous
()
Ответ на: комментарий от yk4ever

Для D можно сделать простой препроцессор, который будет каждый новый уровень отступа окружать фигурными скобками, и всё.

ero-sennin ★★
() автор топика
Ответ на: комментарий от Zubok

> http://common-lisp.net/project/clpython/

> The main dependencies on Allegro CL are yacc (for parsing) and environments access (for compiling).

<flame>
М-да, неужели в CL так плохо обстоят дела с парсерами, уж я молчу про стандартную библиотеку!
</flame>

:P

ero-sennin ★★
() автор топика
Ответ на: комментарий от ero-sennin

Это местный аллегровский yacc вроде, он просто называется так же, ибо чего новое название придумывать.

ЗЫ Я просто слышал звон, сам не лиспер. :)

Teak ★★★★★
()
Ответ на: комментарий от Teak

Ну я и говорю, что <flame>1) кроме yacc никаких нормальных парсеров в CL, видать, нету, и 2) даже этот yacc есть только в Allegro</flame> :P

ero-sennin ★★
() автор топика
Ответ на: комментарий от ero-sennin

>М-да, неужели в CL так плохо обстоят дела с парсерами, уж я молчу про стандартную библиотеку!

Это Yacc, который на CL написан и имеется в Alegro CL. Это их библиотека. Она не обязана быть стандартной и открытой. Есть парсеры: http://www.cliki.net/parser .

Zubok ★★★★★
()
Ответ на: комментарий от ero-sennin

>2) даже этот yacc есть только в Allegro

Этот Yacc, возможно (не пользуюся Аллегро, поэтому предполагаю), есть CL-YACC, который можно взять на cliki.net и воспользоваться им в любой имплементации. http://www.cliki.net/cl-yacc

Zubok ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.