chiark
/
gitweb
/
~mdw
/
sod
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
99a74df
)
src/module-parse.lisp: Improve error recovery for `typename' items.
author
Mark Wooding
<mdw@distorted.org.uk>
Thu, 26 May 2016 08:26:09 +0000
(09:26 +0100)
committer
Mark Wooding
<mdw@distorted.org.uk>
Fri, 8 Jun 2018 18:58:28 +0000
(19:58 +0100)
src/module-parse.lisp
patch
|
blob
|
blame
|
history
diff --git
a/src/module-parse.lisp
b/src/module-parse.lisp
index b72d7c80a25638cafbdbc8ade61dd0096962956c..cb3fcb26d6cd3b6fa1d2c2875e5e2287fbabce31 100644
(file)
--- a/
src/module-parse.lisp
+++ b/
src/module-parse.lisp
@@
-36,14
+36,17
@@
(define-pluggable-parser module typename (scanner pset)
(with-parser-context (token-scanner-context :scanner scanner)
(parse (and "typename"
(skip-many ()
(with-parser-context (token-scanner-context :scanner scanner)
(parse (and "typename"
(skip-many ()
- (seq ((id :id))
- (if (gethash id *module-type-map*)
- (cerror* "Type `~A' already defined" id)
- (add-to-module *module*
- (make-instance 'type-item
- :name id))))
+ (error ()
+ (seq ((id :id))
+ (if (or (gethash id *module-type-map*)
+ (find-simple-c-type id))
+ (cerror* "Type `~A' already defined" id)
+ (add-to-module *module*
+ (make-instance 'type-item
+ :name id))))
+ (skip-until () #\, #\;))
#\,)
#\,)
-
#\;
))))
+
(must #\;)
))))
;;; Fragments.
;;; Fragments.