python-pycparser: new package
From the README: pycparser is a parser for the C language, written in pure Python. It is a module designed to be easily integrated into applications that need to parse C source code. This depends on python-ply, which is in PR #1956 Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This commit is contained in:
parent
a6d7666c4c
commit
168975c82d
2 changed files with 93 additions and 0 deletions
52
lang/python-pycparser/Makefile
Normal file
52
lang/python-pycparser/Makefile
Normal file
|
@ -0,0 +1,52 @@
|
|||
#
|
||||
# Copyright (C) 2015 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=pycparser
|
||||
PKG_VERSION:=2.14
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://pypi.python.org/packages/source/p/pycparser
|
||||
PKG_MD5SUM:=a2bc8d28c923b4fe2b2c3b4b51a4f935
|
||||
|
||||
PKG_BUILD_DEPENDS:=python python-setuptools
|
||||
|
||||
PKG_LICENSE:=BSD-3-Clause
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
$(call include_mk, python-package.mk)
|
||||
|
||||
define Package/python-pycparser
|
||||
SECTION:=lang
|
||||
CATEGORY:=Languages
|
||||
SUBMENU:=Python
|
||||
TITLE:=python-pycparser
|
||||
URL:=https://github.com/eliben/pycparser
|
||||
DEPENDS:=+python-light +python-ply
|
||||
endef
|
||||
|
||||
define Package/python-pycparser/description
|
||||
pycparser is a parser for the C language, written in pure Python. It is a
|
||||
module designed to be easily integrated into applications that need to parse
|
||||
C source code.
|
||||
endef
|
||||
|
||||
define PyPackage/python-pycparser/filespec
|
||||
+|$(PYTHON_PKG_DIR)
|
||||
-|$(PYTHON_PKG_DIR)/pycparser/ply
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
$(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
|
||||
endef
|
||||
|
||||
$(eval $(call PyPackage,python-pycparser))
|
||||
$(eval $(call BuildPackage,python-pycparser))
|
41
lang/python-pycparser/patches/001-use-external-ply.patch
Normal file
41
lang/python-pycparser/patches/001-use-external-ply.patch
Normal file
|
@ -0,0 +1,41 @@
|
|||
diff --git a/pycparser/c_lexer.py b/pycparser/c_lexer.py
|
||||
index cbb9d26..cbd7742 100644
|
||||
--- a/pycparser/c_lexer.py
|
||||
+++ b/pycparser/c_lexer.py
|
||||
@@ -9,8 +9,8 @@
|
||||
import re
|
||||
import sys
|
||||
|
||||
-from .ply import lex
|
||||
-from .ply.lex import TOKEN
|
||||
+from ply import lex
|
||||
+from ply.lex import TOKEN
|
||||
|
||||
|
||||
class CLexer(object):
|
||||
diff --git a/pycparser/c_parser.py b/pycparser/c_parser.py
|
||||
index f4f7453..5c0ca88 100644
|
||||
--- a/pycparser/c_parser.py
|
||||
+++ b/pycparser/c_parser.py
|
||||
@@ -8,7 +8,7 @@
|
||||
#------------------------------------------------------------------------------
|
||||
import re
|
||||
|
||||
-from .ply import yacc
|
||||
+from ply import yacc
|
||||
|
||||
from . import c_ast
|
||||
from .c_lexer import CLexer
|
||||
diff --git a/setup.py b/setup.py
|
||||
index fdccbb3..036a10b 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -49,7 +49,7 @@ setup(
|
||||
classifiers = [
|
||||
'Programming Language :: Python :: 2',
|
||||
'Programming Language :: Python :: 3',],
|
||||
- packages=['pycparser', 'pycparser.ply'],
|
||||
+ packages=['pycparser'],
|
||||
package_data={'pycparser': ['*.cfg']},
|
||||
cmdclass={'install': install, 'sdist': sdist},
|
||||
)
|
Loading…
Reference in a new issue