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>
		
			
				
	
	
		
			50 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Common Lisp
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Common Lisp
		
	
	
	
	
	
| ;;;  package.lisp --- backtracking parser package definition
 | |
| 
 | |
| ;;;  Copyright (C) 2003-2006, 2009 by Walter C. Pelissero
 | |
| 
 | |
| ;;;  Author: Walter C. Pelissero <walter@pelissero.de>
 | |
| ;;;  Project: NPG a Naive Parser Generator
 | |
| 
 | |
| #+cmu (ext:file-comment "$Module: package.lisp $")
 | |
| 
 | |
| ;;; 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
 | |
| 
 | |
| (in-package :cl-user)
 | |
| 
 | |
| (defpackage :naive-parser-generator
 | |
|   (:nicknames :npg)
 | |
|   (:use :common-lisp)
 | |
|   (:export
 | |
|    #:parse				; The Parser
 | |
|    #:reset-grammar
 | |
|    #:generate-grammar
 | |
|    #:print-grammar-figures
 | |
|    #:grammar-keyword-p
 | |
|    #:keyword
 | |
|    #:grammar
 | |
|    #:make-token
 | |
|    #:token-value
 | |
|    #:token-type
 | |
|    #:token-position
 | |
|    #:later-position
 | |
|    #:defrule				; to define grammars
 | |
|    #:deftoken				; to define a lexer
 | |
|    #:input-cursor-mixin
 | |
|    #:copy-input-cursor-slots
 | |
|    #:dup-input-cursor
 | |
|    #:read-next-tokens
 | |
|    #:end-of-input
 | |
|    #:? #:+ #:* #:or
 | |
|    #:$vars #:$all #:$alist
 | |
|    #:$1 #:$2 #:$3 #:$4 #:$5 #:$6 #:$7 #:$8 #:$9 #:$10))
 |