%global _empty_manifest_terminate_build 0 Name: python-LEPL Version: 5.1.3 Release: 1 Summary: A Parser Library for Python 2.6+/3+: Recursive Descent; Full Backtracking License: UNKNOWN URL: http://www.acooke.org/lepl/ Source0: https://mirrors.nju.edu.cn/pypi/web/packages/bb/89/5acd0982ca17258d13df855114364140712ac59ccdb835093c385ddc8dca/LEPL-5.1.3.tar.gz BuildArch: noarch %description * **Parsers are Python code**, defined in Python itself. No separate grammar is necessary. * **Friendly syntax** using Python's operators allows grammars to be defined in a declarative style close to BNF. * Integrated, optional **lexer** simplifies handling whitespace. * Built-in **AST support** with support for iteration, traversal and re--writing. * Generic, pure-Python approach supports parsing a wide variety of data including **bytes** (Python 3+ only). * **Well documented** and easy to extend. * **Unlimited recursion depth**. The underlying algorithm is recursive descent, which can exhaust the stack for complex grammars and large data sets. LEPL avoids this problem by using Python generators as coroutines (aka "trampolining"). * **Parser rewriting**. The parser can itself be manipulated by Python code. This gives unlimited opportunities for future expansion and optimisation. * Support for ambiguous grammars (**complete backtracking**). A parser can return more than one result (aka **"parse forests"**). * Parsers can be made more **efficient** with automatic memoisation ("packrat parsing"). * Memoisation can detect and control **left-recursive grammars**. Together with LEPL's support for ambiguity this means that "any" grammar can be supported. * Trace and resource management, including **"deepest match" diagnostics** and the ability to limit backtracking. %package -n python3-LEPL Summary: A Parser Library for Python 2.6+/3+: Recursive Descent; Full Backtracking Provides: python-LEPL BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-LEPL * **Parsers are Python code**, defined in Python itself. No separate grammar is necessary. * **Friendly syntax** using Python's operators allows grammars to be defined in a declarative style close to BNF. * Integrated, optional **lexer** simplifies handling whitespace. * Built-in **AST support** with support for iteration, traversal and re--writing. * Generic, pure-Python approach supports parsing a wide variety of data including **bytes** (Python 3+ only). * **Well documented** and easy to extend. * **Unlimited recursion depth**. The underlying algorithm is recursive descent, which can exhaust the stack for complex grammars and large data sets. LEPL avoids this problem by using Python generators as coroutines (aka "trampolining"). * **Parser rewriting**. The parser can itself be manipulated by Python code. This gives unlimited opportunities for future expansion and optimisation. * Support for ambiguous grammars (**complete backtracking**). A parser can return more than one result (aka **"parse forests"**). * Parsers can be made more **efficient** with automatic memoisation ("packrat parsing"). * Memoisation can detect and control **left-recursive grammars**. Together with LEPL's support for ambiguity this means that "any" grammar can be supported. * Trace and resource management, including **"deepest match" diagnostics** and the ability to limit backtracking. %package help Summary: Development documents and examples for LEPL Provides: python3-LEPL-doc %description help * **Parsers are Python code**, defined in Python itself. No separate grammar is necessary. * **Friendly syntax** using Python's operators allows grammars to be defined in a declarative style close to BNF. * Integrated, optional **lexer** simplifies handling whitespace. * Built-in **AST support** with support for iteration, traversal and re--writing. * Generic, pure-Python approach supports parsing a wide variety of data including **bytes** (Python 3+ only). * **Well documented** and easy to extend. * **Unlimited recursion depth**. The underlying algorithm is recursive descent, which can exhaust the stack for complex grammars and large data sets. LEPL avoids this problem by using Python generators as coroutines (aka "trampolining"). * **Parser rewriting**. The parser can itself be manipulated by Python code. This gives unlimited opportunities for future expansion and optimisation. * Support for ambiguous grammars (**complete backtracking**). A parser can return more than one result (aka **"parse forests"**). * Parsers can be made more **efficient** with automatic memoisation ("packrat parsing"). * Memoisation can detect and control **left-recursive grammars**. Together with LEPL's support for ambiguity this means that "any" grammar can be supported. * Trace and resource management, including **"deepest match" diagnostics** and the ability to limit backtracking. %prep %autosetup -n LEPL-5.1.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-LEPL -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Sun Apr 23 2023 Python_Bot - 5.1.3-1 - Package Spec generated