ASR_BASE
Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/external/subpack/lang/python/python-pycparser/Makefile b/external/subpack/lang/python/python-pycparser/Makefile
new file mode 100644
index 0000000..5085372
--- /dev/null
+++ b/external/subpack/lang/python/python-pycparser/Makefile
@@ -0,0 +1,55 @@
+#
+# Copyright (C) 2015-2018 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:=python-pycparser
+PKG_VERSION:=2.21
+PKG_RELEASE:=2
+
+PYPI_NAME:=pycparser
+PKG_HASH:=e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206
+
+PKG_LICENSE:=BSD-3-Clause
+PKG_LICENSE_FILES:=LICENSE
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
+
+PKG_BUILD_DEPENDS:=python-ply/host # ply==3.10
+HOST_BUILD_DEPENDS:= \
+ python3/host \
+ python-build/host \
+ python-installer/host \
+ python-wheel/host \
+ python-ply/host
+
+include ../pypi.mk
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
+include ../python3-package.mk
+include ../python3-host-build.mk
+
+define Package/python3-pycparser
+ SECTION:=lang
+ CATEGORY:=Languages
+ SUBMENU:=Python
+ TITLE:=C parser in Python
+ URL:=https://github.com/eliben/pycparser
+ DEPENDS:= \
+ +python3-light \
+ +python3-ply
+endef
+
+define Package/python3-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
+
+$(eval $(call Py3Package,python3-pycparser))
+$(eval $(call BuildPackage,python3-pycparser))
+$(eval $(call BuildPackage,python3-pycparser-src))
+$(eval $(call HostBuild))
diff --git a/external/subpack/lang/python/python-pycparser/patches/001-use-external-ply.patch b/external/subpack/lang/python/python-pycparser/patches/001-use-external-ply.patch
new file mode 100644
index 0000000..b6f2eac
--- /dev/null
+++ b/external/subpack/lang/python/python-pycparser/patches/001-use-external-ply.patch
@@ -0,0 +1,35 @@
+--- a/pycparser/c_lexer.py
++++ b/pycparser/c_lexer.py
+@@ -8,8 +8,8 @@
+ #------------------------------------------------------------------------------
+ import re
+
+-from .ply import lex
+-from .ply.lex import TOKEN
++from ply import lex
++from ply.lex import TOKEN
+
+
+ class CLexer(object):
+--- a/pycparser/c_parser.py
++++ b/pycparser/c_parser.py
+@@ -6,7 +6,7 @@
+ # Eli Bendersky [https://eli.thegreenplace.net/]
+ # License: BSD
+ #------------------------------------------------------------------------------
+-from .ply import yacc
++from ply import yacc
+
+ from . import c_ast
+ from .c_lexer import CLexer
+--- a/setup.py
++++ b/setup.py
+@@ -64,7 +64,7 @@ setup(
+ 'Programming Language :: Python :: 3.10',
+ ],
+ python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
+- packages=['pycparser', 'pycparser.ply'],
++ packages=['pycparser'],
+ package_data={'pycparser': ['*.cfg']},
+ cmdclass={'install': install, 'sdist': sdist},
+ )