chore(3p/lisp): import npg source tarball
Used http://wcp.sdf-eu.org/software/npg-20150517T144652.tbz (sha256 42e88f6067128fbdb3a3d578371c9b0ee2a34f1d36daf80be8a520094132d828). There's no upstream repository nor a release since 2015, so importing seems to make a lot of sense. Since we can't subtree making any depot-related changes in a separate CL -- this is only the source import. Change-Id: I64c984ca0a84b9e48c6f496577ffccce1d7bdceb Reviewed-on: https://cl.tvl.fyi/c/depot/+/3377 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
This commit is contained in:
parent
2e08324484
commit
8e45aace13
10 changed files with 3609 additions and 0 deletions
41
third_party/lisp/npg/README
vendored
Normal file
41
third_party/lisp/npg/README
vendored
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
|
||||
NPG a Naive Parser Generator
|
||||
for Common Lisp
|
||||
|
||||
Copyright (C) 2003-2006, 2010 by Walter C. Pelissero
|
||||
|
||||
This library is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as
|
||||
published by the Free Software Foundation; either version 2.1 of the
|
||||
License, or (at your option) any later version. This library is
|
||||
distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||
License for more details. You should have received a copy of the GNU
|
||||
Lesser General Public License along with this library; if not, write
|
||||
to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
This library generates on the fly (no external representation of the
|
||||
parser is produced) a recursive descent parser based on the grammar
|
||||
rules you have fed it with. The parser object can then be used to
|
||||
scan tokenised input. Although a facility to produce a lexical
|
||||
analiser is not provided, to write such a library is fairly easy for
|
||||
most languages. NPG parsers require your lexer to adhere to a certain
|
||||
protocol to be able to communicate with them. Examples are provided
|
||||
that explain these requirements.
|
||||
|
||||
While quite possibly not producing the fastest parsers in town, it's
|
||||
fairly simple and hopefully easy to debug. It accepts a lispy EBNF
|
||||
grammar description of arbitrary complexity with the exception of
|
||||
mutually left recursive rules (watch out, they produce undetected
|
||||
infinite recursion) and produces a backtracking recursive descent
|
||||
parser. Immediate left recursive rules are properly simplified,
|
||||
though.
|
||||
|
||||
Multiple concurrent parsers are supported.
|
||||
|
||||
To compile, an ASDF file is provided.
|
||||
|
||||
See the examples directory for clues on how to use it.
|
||||
Loading…
Add table
Add a link
Reference in a new issue