Skip to content

jorgenschaefer/python-elisp

Repository files navigation

Emacs Lisp Parser

A simple package to parse Emacs Lisp expressions from Python.

https://secure.travis-ci.org/jorgenschaefer/python-elisp.png?branch=master https://coveralls.io/repos/jorgenschaefer/python-elisp/badge.png?branch=master

Simple Usage

>>> import elisp
>>> numbers = elisp.loads("(1 2 3)")
>>> numbers.car
1
>>> numbers.cdr.cdr.car
3
>>> numbers.cdr.cdr.cdr is elisp.NIL
True

Type Mappings

The following types are supported and are mapped to the respective Python types.

  • integer to int
  • float to float
  • symbol to elisp.ELispSymbol, a subclass of str
  • list, cons to elisp.ELispCons
  • unibyte string to bytearray
  • multibyte string to unicode (without the \C-a syntax)
  • vector to list

Unsupported Types

The following types are not supported:

  • Characters (like ?a or ?\C-f)
  • Char-Table
  • Bool-Vector
  • Hash Table
  • Byte-Code

Grammar

See the file elisp.ebnf for the grammar used by this package.

About

Emacs Lisp parser for Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published