accept pub enum, and enums used as types

Implement pub support for enums, and also anonymous enums declared
in-place.

Also give the cdr of a `pub' form the form's own location, so a
error about what follows `pub' can say where it was written
This commit is contained in:
2026-09-16 01:16:52 +03:00
parent d0d0ea8e84
commit 847bb14340
7 changed files with 60 additions and 11 deletions

View File

@@ -83,7 +83,7 @@
;; A variable becomes an `extern' declaration
((var)
(cons (copy-form-source! form (cons 'extern (take (cdr form) 3))) acc))
((define defmacro import include struct typedef union)
((define defmacro enum import include struct typedef union)
(cons (copy-form-source! form (cdr form)) acc))
(else (sex-error form "pub must be followed by a definition" form))))
(else acc)))