diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-04-11 17:45:26 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-04-11 17:45:26 +0000 |
| commit | 7e7b4b8ad34b915e74c6ff696948125e426a1663 (patch) | |
| tree | e3dd998b707b86f991b7d042dc6d362c492866a0 | |
| parent | e1b8c728106a09e2bd39e4cf29244bd58144a7e6 (diff) | |
automatic import of python-pybison
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-pybison.spec | 353 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 355 insertions, 0 deletions
@@ -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 +[](https://pypi.org/project/pybison) +[](https://pypi.org/project/pybison/#files) +[](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 +[](https://pypi.org/project/pybison) +[](https://pypi.org/project/pybison/#files) +[](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 +[](https://pypi.org/project/pybison) +[](https://pypi.org/project/pybison/#files) +[](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 @@ -0,0 +1 @@ +bca71532482fed8181feb456b4a0ed36 pybison-0.6.3.tar.gz |
