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},
+ )