Next: , Previous: , Up: Top   [Contents][Index]


7 Python Library

SEL exports a Python library which exposes functionality for parsing, traversing, and inspecting source code from multiple languages. Specifically, this library exposes SEL’s tree-sitter based asts (see Source Code with tree-sitter) and the generic functions defined upon those ASTs. The ultimate Python library then has two large sources of functionality, (i) the tree-sitter libraries which provide the ability to parse a large number of programming languages into ASTs and (ii) the SEL machinery leveraging Common Lisp’s object system (CLOS) and generic functions to build a large multi-language API for software analysis and transformation over these ASTs.

This library is available on PyPi with pre-packaged tree-sitter libraries for use on any Linux system (see https://pypi.org/project/asts/). The remainder of this section walks through building the library locally, running, and troubleshooting local builds of this Python Library.