From patchwork Sat Jan 28 19:52:01 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [esnacc-dev,0/2] Library and Back-end support: Python X-Patchwork-Submitter: Aaron Conole X-Patchwork-Id: 7 Message-Id: <1485633123-4103-1-git-send-email-aconole@bytheb.org> To: dev@lists.esnacc.org Date: Sat, 28 Jan 2017 14:52:01 -0500 From: Aaron Conole List-Id: eSNACC Development discussion This 'series' introduces a python library, and code generation back-end. It is useful to have the option of generating python versions of asn.1 code for rapid prototyping, interoperability, and because python is a popular language. The intent isn't to be completely feature complete out of the gate, but to provide just enough for initial testing and integration. More backend work is needed to have implicit tag, and extension support, among other very important features. Aaron Conole (2): python: Introduce Python library compiler/python: Initial handling of Python code NEWS | 3 + compiler/automake.mk | 5 + compiler/back-ends/py-gen/gen-any.c | 265 ++++++++++ compiler/back-ends/py-gen/gen-code.c | 929 +++++++++++++++++++++++++++++++++++ compiler/back-ends/py-gen/rules.c | 569 +++++++++++++++++++++ compiler/back-ends/py-gen/rules.h | 36 ++ compiler/back-ends/py-gen/types.c | 529 ++++++++++++++++++++ compiler/back-ends/str-util.c | 48 +- compiler/back-ends/str-util.h | 1 + compiler/core/define.c | 3 +- compiler/core/snacc.c | 171 +++++-- py-lib/.gitignore | 1 + py-lib/esnacc/__init__.py | 7 + py-lib/esnacc/asn_base.py | 189 +++++++++++++++++++ py-lib/esnacc/asn_bool.py | 53 ++++++ py-lib/esnacc/asn_buffer.py | 124 +++++++++++++ py-lib/esnacc/asn_ints.py | 356 ++++++++++++++++++++++++++++++++++++ py-lib/esnacc/asn_list.py | 98 ++++++++++ py-lib/esnacc/asn_octs.py | 112 ++++++++++++ py-lib/esnacc/asn_useful.py | 35 ++++ py-lib/esnacctests/__init__.py | 7 + py-lib/esnacctests/asn_ints_test.py | 192 +++++++++++++++++++ 22 files changed, 3690 insertions(+), 43 deletions(-) create mode 100644 compiler/back-ends/py-gen/gen-any.c create mode 100644 compiler/back-ends/py-gen/gen-code.c create mode 100644 compiler/back-ends/py-gen/rules.c create mode 100644 compiler/back-ends/py-gen/rules.h create mode 100644 compiler/back-ends/py-gen/types.c create mode 100644 py-lib/.gitignore create mode 100644 py-lib/esnacc/__init__.py create mode 100644 py-lib/esnacc/asn_base.py create mode 100644 py-lib/esnacc/asn_bool.py create mode 100644 py-lib/esnacc/asn_buffer.py create mode 100644 py-lib/esnacc/asn_ints.py create mode 100644 py-lib/esnacc/asn_list.py create mode 100644 py-lib/esnacc/asn_octs.py create mode 100644 py-lib/esnacc/asn_useful.py create mode 100644 py-lib/esnacctests/__init__.py create mode 100755 py-lib/esnacctests/asn_ints_test.py