From owner-cvs-ports@FreeBSD.ORG Fri Aug 5 14:03:53 2011 Return-Path: Delivered-To: cvs-ports@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 625F9106566C; Fri, 5 Aug 2011 14:03:53 +0000 (UTC) (envelope-from tota@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 39F818FC12; Fri, 5 Aug 2011 14:03:53 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.4/8.14.4) with ESMTP id p75E3rLP051953; Fri, 5 Aug 2011 14:03:53 GMT (envelope-from tota@repoman.freebsd.org) Received: (from tota@localhost) by repoman.freebsd.org (8.14.4/8.14.4/Submit) id p75E3rni051952; Fri, 5 Aug 2011 14:03:53 GMT (envelope-from tota) Message-Id: <201108051403.p75E3rni051952@repoman.freebsd.org> From: TAKATSU Tomonari Date: Fri, 5 Aug 2011 14:03:53 +0000 (UTC) To: ports-committers@FreeBSD.org, cvs-ports@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: ports/devel Makefile ports/devel/py-funcparserlib Makefile distinfo pkg-descr pkg-plist X-BeenThere: cvs-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Aug 2011 14:03:53 -0000 tota 2011-08-05 14:03:53 UTC FreeBSD ports repository Modified files: devel Makefile Added files: devel/py-funcparserlib Makefile distinfo pkg-descr pkg-plist Log: - Add a new port: devel/py-funcparserlib Parser combinators are just higher-order functions that take parsers as their arguments and return them as result values. Parser combinators are: * First-class values * Extremely composable * Tend to make the code quite compact * Resemble the readable notation of xBNF grammars Parsers made with funcparserlib are pure-Python LL(*) parsers. It means that it's very easy to write them without thinking about look-aheads and all that hardcore parsing stuff. But the recursive descent parsing is a rather slow method compared to LL(k) or LR(k) algorithms. So the primary domain for funcparserlib is parsing little languages or external DSLs (domain specific languages). The library itself is very small. Its source code is only 0.5 KLOC, with lots of comments included. It features the longest parsed prefix error reporting, as well as a tiny lexer generator for token position tracking. WWW: http://code.google.com/p/funcparserlib/ Revision Changes Path 1.4471 +1 -0 ports/devel/Makefile 1.1 +45 -0 ports/devel/py-funcparserlib/Makefile (new) 1.1 +2 -0 ports/devel/py-funcparserlib/distinfo (new) 1.1 +21 -0 ports/devel/py-funcparserlib/pkg-descr (new) 1.1 +13 -0 ports/devel/py-funcparserlib/pkg-plist (new)