Declared a new package.
authorD Herring <dherring@at.tentpost.dot.com>
Sun, 11 Mar 2007 01:04:05 +0000 (20:04 -0500)
committerD Herring <dherring@at.tentpost.dot.com>
Sun, 11 Mar 2007 01:04:05 +0000 (20:04 -0500)
parser.lisp

index 9729aa4..bcaf05d 100644 (file)
@@ -1,8 +1,24 @@
 ;; A simple top-down, backtracking parser
 ;; Modelled after EBNF notation
 
-
-;; Internal utilities
+(defpackage "EBNF-PARSER"
+    (:nicknames "EBNF" "PARSER")
+    (:use "COMMON-LISP")
+    (:export "GRAMMAR-CHAR"
+             "GRAMMAR-CHARTABLE"
+             "GRAMMAR-STRING"
+             "GRAMMAR-AND"
+             "GRAMMAR-OR"
+             "GRAMMAR-N"
+             "GRAMMAR-*"
+             "GRAMMAR-EXCEPTION"
+             "GRAMMAR-FUNC"
+             "GRAMMAR-RULE"))
+    
+(in-package "EBNF-PARSER")  
+
+
+;;; Internal utilities
 
 
 (defmacro grammar-call (x)
@@ -20,7 +36,7 @@
         (t (error "Cannot call ~S" x))))
 
 
-;; Parser construction
+;;; Parser construction
 
 
 (defun starts-with (string prefix &key (start 0))
           (values end value))))))
 
 
-;; Output control
+;;; Output control
 
 
 (defmacro grammar-func (x f)
       (values end (,f value)))))
 
 
-;; Helper macros
+;;; Helper macros
 
 
-(defmacro grammar-rule (name &rest body)
+(defmacro grammar-rule (name &body body)
   "defun wrapper to simplify rule production"
   `(defun ,name (string &key (start 0))
     ,@body))