chiark / gitweb /
src/module-parse.lisp: Don't explicitly ask for default behaviour.
authorMark Wooding <mdw@distorted.org.uk>
Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Fri, 8 Jun 2018 18:58:28 +0000 (19:58 +0100)
  * Reporting the scanner position as the error location.

  * Setting at-least-one when parsing delimitered lists.

  * Keeping the terminator when skipping to one of several terminator
    tokens.

src/module-parse.lisp

index 4d4d818a4e1bc29a7262cb0eb174681852ec2f44..197e3e4fb0e3071431d9d021bec2fd1e182a5984 100644 (file)
@@ -35,7 +35,7 @@ (define-pluggable-parser module typename (scanner pset)
   (declare (ignore pset))
   (with-parser-context (token-scanner-context :scanner scanner)
     (parse (and "typename"
-               (skip-many (:min 1)
+               (skip-many ()
                  (seq ((id :id))
                    (if (gethash id *module-type-map*)
                        (cerror* "Type `~A' already defined" id)
@@ -178,7 +178,7 @@ (define-pluggable-parser module set (scanner pset)
                        (parse (skip-many (:min 0)
                                 (error (:ignore-unconsumed t)
                                     (parse-property scanner module-pset)
-                                  (skip-until (:keep-end t) #\, #\;))
+                                  (skip-until () #\, #\;))
                                 #\,))))
                #\;))))
 
@@ -351,8 +351,7 @@ (defun parse-class-body (scanner pset name supers)
                 ;; definition; otherwise it might be a message or slot.
                 (cond ((not (typep type 'c-function-type))
                        (when (consp name)
-                         (cerror*-with-location
-                          scanner
+                         (cerror*
                           "Method declarations must have function type")
                          (setf name (cdr name)))
                        (parse-slot-item sub-pset base-type type name))