Metadata-Version: 1.1
Name: ppci
Version: 0.5.5
Summary: A compiler for ARM, X86, MSP430, xtensa and more implemented in pure Python
Home-page: https://ppci.readthedocs.io/
Author: Windel Bouwman
Author-email: UNKNOWN
License: BSD
Description-Content-Type: UNKNOWN
Description: 
        Introduction
        ============
        
        The ppci (pure python compiler infrastructure) project is a compiler
        written entirely in python. It contains language front-ends as well
        as machine code generation functionality. With this library you can
        generate (working!) machine code within python!
        
        The project contains the following:
        
        - A Compiler, an assembler, a linker and a build system
        - Language front-ends: Brainfuck, c3, C, WASM
        - Backends: 6500, arm, avr, msp430, openrisc, risc-v, stm8, x86_64, xtensa
        
        .. warning::
        
            **This project is in alpha state and not ready for production use!**
        
        Api
        ---
        
        Api example to compile c3 code:
        
        .. code-block:: python
        
            >>> import io
            >>> from ppci.api import c3c, link
            >>> source_file = io.StringIO("""
            ... module main;
            ... function void print(string txt) {
            ... }
            ... function void main() {
            ...  print("Hello world");
            ... }""")
            >>> obj = c3c([source_file], [], 'arm')
            >>> obj = link([obj])
        
        Example how to assemble some assembly code:
        
        .. code-block:: python
        
            >>> import io
            >>> from ppci.api import asm
            >>> source_file = io.StringIO("""section code
            ... pop rbx
            ... push r10
            ... mov rdi, 42""")
            >>> obj = asm(source_file, 'x86_64')
            >>> obj.get_section('code').data
            bytearray(b'[ARH\xbf*\x00\x00\x00\x00\x00\x00\x00')
        
        Example of the low level api usage:
        
        .. code-block:: python
        
            >>> from ppci.arch.x86_64 import instructions, registers
            >>> i = instructions.Pop(registers.rbx)
            >>> i.encode()
            b'['
        
        Documentation
        -------------
        
        Documentation can be found here:
        
        - https://ppci.readthedocs.io/
        
        
        |appveyor|_
        |codecov|_
        |docstate|_
        |travis|_
        |codacygrade|_
        |codacycoverage|_
        |downloads|_
        |conda|_
        
        .. |codecov| image:: https://codecov.io/bb/windel/ppci/branch/default/graph/badge.svg
        .. _codecov: https://codecov.io/bb/windel/ppci/branch/default
        
        
        .. |appveyor| image:: https://ci.appveyor.com/api/projects/status/h0h5huliflrac65o?svg=true
        .. _appveyor: https://ci.appveyor.com/project/WindelBouwman/ppci-786
        
        
        .. |docstate| image:: https://readthedocs.org/projects/ppci/badge/?version=latest
        .. _docstate: https://ppci.readthedocs.io/en/latest
        
        
        .. |travis| image:: https://travis-ci.org/windelbouwman/ppci-mirror.svg?branch=master
        .. _travis: https://travis-ci.org/windelbouwman/ppci-mirror
        
        
        .. |codacygrade| image:: https://api.codacy.com/project/badge/Grade/a178be14a54243be81c27172031dc82c
        .. _codacygrade: https://www.codacy.com/app/windel-bouwman/ppci-mirror
        
        .. |codacycoverage| image:: https://api.codacy.com/project/badge/Coverage/a178be14a54243be81c27172031dc82c
        .. _codacycoverage: https://www.codacy.com/app/windel-bouwman/ppci-mirror
        
        
        .. |downloads| image:: https://anaconda.org/conda-forge/ppci/badges/downloads.svg
        .. _downloads: https://anaconda.org/conda-forge/ppci
        
        .. |conda| image:: https://anaconda.org/conda-forge/ppci/badges/version.svg
        .. _conda: https://anaconda.org/conda-forge/ppci
        
Platform: UNKNOWN
Classifier: License :: OSI Approved :: BSD License
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development :: Compilers
Classifier: Topic :: Software Development :: Assemblers
Classifier: Topic :: Software Development :: Embedded Systems
