summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-11 17:45:26 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-11 17:45:26 +0000
commit7e7b4b8ad34b915e74c6ff696948125e426a1663 (patch)
treee3dd998b707b86f991b7d042dc6d362c492866a0
parente1b8c728106a09e2bd39e4cf29244bd58144a7e6 (diff)
automatic import of python-pybison
-rw-r--r--.gitignore1
-rw-r--r--python-pybison.spec353
-rw-r--r--sources1
3 files changed, 355 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..333dc7c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/pybison-0.6.3.tar.gz
diff --git a/python-pybison.spec b/python-pybison.spec
new file mode 100644
index 0000000..b692136
--- /dev/null
+++ b/python-pybison.spec
@@ -0,0 +1,353 @@
+%global _empty_manifest_terminate_build 0
+Name: python-pybison
+Version: 0.6.3
+Release: 1
+Summary: Python bindings for bison/flex parser engine
+License: GPLv2
+URL: https://github.com/lukeparser/pybison
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/72/40/1f908ae261b650b45192d92c738d412ca86ebbabc46fa555b1380b0e67ae/pybison-0.6.3.tar.gz
+
+
+%description
+# PyBison
+[![python versions](https://img.shields.io/pypi/pyversions/pybison)](https://pypi.org/project/pybison)
+[![wheel](https://img.shields.io/pypi/wheel/pybison)](https://pypi.org/project/pybison/#files)
+[![Build](https://github.com/lukeparser/pybison/workflows/Build/badge.svg)](https://github.com/lukeparser/pybison/actions)
+
+Welcome to PyBison!
+Bringing **GNU Bison/Flex**'s raw speed and power to Python
+
+## What is PyBison?
+PyBison is a framework which effectively 'wraps' **Bison** and **Flex into** a Python class structure.
+
+You define a parser class, define tokens and precedences as attributes, and parse targets as methods with rules in the docstrings, then instantiate and run.
+
+Black Magick happens in the background, whereupon you get callbacks each time `yyparse()` resolves a parse target.
+
+## Install
+
+Now, **install pybison** with:
+```bash
+pip install pybison
+```
+
+The following command will verify if the installation succeeded:
+
+```bash
+python -c "import bison"
+```
+
+## There are already parsers for Python. Why re-invent the wheel?
+
+I looked at all the Python-based parsing frameworks.
+
+IMO, the best one was **PLY** - a pure-python *lexx/yacc* implementation (which I have borrowed from heavily in designing PyBison's OO model).
+
+But PLY suffers some major limitations:
+
+- usage of 'named groups' regular expressions in the lexer creates a hard limit of 100 tokens - not enough to comfortably handle major languages
+- pure-python implementation is a convenience, but incurs a cruel performance penalty
+- the parser engine is SLR, not full LALR(1)
+
+The other frameworks utilise a fiddly script syntax -
+
+## How do I use this?
+
+Refer to the [examples](https://github.com/lukeparser/pybison/tree/master/examples) and the [docs](https://github.com/lukeparser/pybison/tree/master/doc) for usage.
+
+## Development
+You will need:
+
+- [Python](https://www.python.org/), with development headers and libraries
+- [pip](https://pypi.org/project/pip/)
+- [GNU bison](https://www.gnu.org/software/bison/)
+- [flex](https://github.com/westes/flex)
+- A standard C compiler and linker
+
+We assume that Python, pip and a C compiler is already installed.
+
+### Dependencies
+First, install the dependencies `bison` and `flex`.
+
+**Arch Linux**
+```bash
+sudo pacman -S bison flex
+```
+**Ubuntu**
+```bash
+sudo apt-get install bison flex
+```
+
+**Windows**
+
+With [Chocolatey](https://community.chocolatey.org/), you can install the packages as follows:
+```bash
+choco install winflexbison3
+```
+Additionally, if a C compiler is needed, [mingw](https://osdn.net/projects/mingw/) can be installed with Chocolatey as well.
+```bash
+choco install mingw
+```
+
+### Debugging
+
+See the short introduction into [debugging](debugging/README.md).
+
+## Collaborators
+- PyBison was designed and written by [David McNab <david@freenet.org.nz>](http://freenet.mcnabhosting.com/python/pybison/)
+- [smvv](https://github.com/smvv)
+- [habibutsu](https://github.com/habibutsu)
+- [thisiscam](https://github.com/thisiscam)
+- [eugeneai](https://github.com/eugenai)
+- [csarn](https://github.com/csarn)
+- [sbrodehl](https://github.com/sbrodehl)
+- [da-h](https://github.com/da-h)
+
+
+%package -n python3-pybison
+Summary: Python bindings for bison/flex parser engine
+Provides: python-pybison
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+BuildRequires: python3-cffi
+BuildRequires: gcc
+BuildRequires: gdb
+%description -n python3-pybison
+# PyBison
+[![python versions](https://img.shields.io/pypi/pyversions/pybison)](https://pypi.org/project/pybison)
+[![wheel](https://img.shields.io/pypi/wheel/pybison)](https://pypi.org/project/pybison/#files)
+[![Build](https://github.com/lukeparser/pybison/workflows/Build/badge.svg)](https://github.com/lukeparser/pybison/actions)
+
+Welcome to PyBison!
+Bringing **GNU Bison/Flex**'s raw speed and power to Python
+
+## What is PyBison?
+PyBison is a framework which effectively 'wraps' **Bison** and **Flex into** a Python class structure.
+
+You define a parser class, define tokens and precedences as attributes, and parse targets as methods with rules in the docstrings, then instantiate and run.
+
+Black Magick happens in the background, whereupon you get callbacks each time `yyparse()` resolves a parse target.
+
+## Install
+
+Now, **install pybison** with:
+```bash
+pip install pybison
+```
+
+The following command will verify if the installation succeeded:
+
+```bash
+python -c "import bison"
+```
+
+## There are already parsers for Python. Why re-invent the wheel?
+
+I looked at all the Python-based parsing frameworks.
+
+IMO, the best one was **PLY** - a pure-python *lexx/yacc* implementation (which I have borrowed from heavily in designing PyBison's OO model).
+
+But PLY suffers some major limitations:
+
+- usage of 'named groups' regular expressions in the lexer creates a hard limit of 100 tokens - not enough to comfortably handle major languages
+- pure-python implementation is a convenience, but incurs a cruel performance penalty
+- the parser engine is SLR, not full LALR(1)
+
+The other frameworks utilise a fiddly script syntax -
+
+## How do I use this?
+
+Refer to the [examples](https://github.com/lukeparser/pybison/tree/master/examples) and the [docs](https://github.com/lukeparser/pybison/tree/master/doc) for usage.
+
+## Development
+You will need:
+
+- [Python](https://www.python.org/), with development headers and libraries
+- [pip](https://pypi.org/project/pip/)
+- [GNU bison](https://www.gnu.org/software/bison/)
+- [flex](https://github.com/westes/flex)
+- A standard C compiler and linker
+
+We assume that Python, pip and a C compiler is already installed.
+
+### Dependencies
+First, install the dependencies `bison` and `flex`.
+
+**Arch Linux**
+```bash
+sudo pacman -S bison flex
+```
+**Ubuntu**
+```bash
+sudo apt-get install bison flex
+```
+
+**Windows**
+
+With [Chocolatey](https://community.chocolatey.org/), you can install the packages as follows:
+```bash
+choco install winflexbison3
+```
+Additionally, if a C compiler is needed, [mingw](https://osdn.net/projects/mingw/) can be installed with Chocolatey as well.
+```bash
+choco install mingw
+```
+
+### Debugging
+
+See the short introduction into [debugging](debugging/README.md).
+
+## Collaborators
+- PyBison was designed and written by [David McNab <david@freenet.org.nz>](http://freenet.mcnabhosting.com/python/pybison/)
+- [smvv](https://github.com/smvv)
+- [habibutsu](https://github.com/habibutsu)
+- [thisiscam](https://github.com/thisiscam)
+- [eugeneai](https://github.com/eugenai)
+- [csarn](https://github.com/csarn)
+- [sbrodehl](https://github.com/sbrodehl)
+- [da-h](https://github.com/da-h)
+
+
+%package help
+Summary: Development documents and examples for pybison
+Provides: python3-pybison-doc
+%description help
+# PyBison
+[![python versions](https://img.shields.io/pypi/pyversions/pybison)](https://pypi.org/project/pybison)
+[![wheel](https://img.shields.io/pypi/wheel/pybison)](https://pypi.org/project/pybison/#files)
+[![Build](https://github.com/lukeparser/pybison/workflows/Build/badge.svg)](https://github.com/lukeparser/pybison/actions)
+
+Welcome to PyBison!
+Bringing **GNU Bison/Flex**'s raw speed and power to Python
+
+## What is PyBison?
+PyBison is a framework which effectively 'wraps' **Bison** and **Flex into** a Python class structure.
+
+You define a parser class, define tokens and precedences as attributes, and parse targets as methods with rules in the docstrings, then instantiate and run.
+
+Black Magick happens in the background, whereupon you get callbacks each time `yyparse()` resolves a parse target.
+
+## Install
+
+Now, **install pybison** with:
+```bash
+pip install pybison
+```
+
+The following command will verify if the installation succeeded:
+
+```bash
+python -c "import bison"
+```
+
+## There are already parsers for Python. Why re-invent the wheel?
+
+I looked at all the Python-based parsing frameworks.
+
+IMO, the best one was **PLY** - a pure-python *lexx/yacc* implementation (which I have borrowed from heavily in designing PyBison's OO model).
+
+But PLY suffers some major limitations:
+
+- usage of 'named groups' regular expressions in the lexer creates a hard limit of 100 tokens - not enough to comfortably handle major languages
+- pure-python implementation is a convenience, but incurs a cruel performance penalty
+- the parser engine is SLR, not full LALR(1)
+
+The other frameworks utilise a fiddly script syntax -
+
+## How do I use this?
+
+Refer to the [examples](https://github.com/lukeparser/pybison/tree/master/examples) and the [docs](https://github.com/lukeparser/pybison/tree/master/doc) for usage.
+
+## Development
+You will need:
+
+- [Python](https://www.python.org/), with development headers and libraries
+- [pip](https://pypi.org/project/pip/)
+- [GNU bison](https://www.gnu.org/software/bison/)
+- [flex](https://github.com/westes/flex)
+- A standard C compiler and linker
+
+We assume that Python, pip and a C compiler is already installed.
+
+### Dependencies
+First, install the dependencies `bison` and `flex`.
+
+**Arch Linux**
+```bash
+sudo pacman -S bison flex
+```
+**Ubuntu**
+```bash
+sudo apt-get install bison flex
+```
+
+**Windows**
+
+With [Chocolatey](https://community.chocolatey.org/), you can install the packages as follows:
+```bash
+choco install winflexbison3
+```
+Additionally, if a C compiler is needed, [mingw](https://osdn.net/projects/mingw/) can be installed with Chocolatey as well.
+```bash
+choco install mingw
+```
+
+### Debugging
+
+See the short introduction into [debugging](debugging/README.md).
+
+## Collaborators
+- PyBison was designed and written by [David McNab <david@freenet.org.nz>](http://freenet.mcnabhosting.com/python/pybison/)
+- [smvv](https://github.com/smvv)
+- [habibutsu](https://github.com/habibutsu)
+- [thisiscam](https://github.com/thisiscam)
+- [eugeneai](https://github.com/eugenai)
+- [csarn](https://github.com/csarn)
+- [sbrodehl](https://github.com/sbrodehl)
+- [da-h](https://github.com/da-h)
+
+
+%prep
+%autosetup -n pybison-0.6.3
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-pybison -f filelist.lst
+%dir %{python3_sitearch}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 0.6.3-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..e4e51f6
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+bca71532482fed8181feb456b4a0ed36 pybison-0.6.3.tar.gz