This commit is contained in:
msyds committed 2026-09-22 16:46:17 -06:00
1 parent a4e068d09b
commit aa63cf2eec
3 files changed
+58 -3

No files matched your search

+41 -2
View File
@@ -47,7 +47,46 @@ directive = #"#!(no-)?fold-case"
(* library *)
library-start = <intertoken-space> library
library = <left-paren> <"define-library">
<intertoken-space> library-name <right-paren>
library = <left-paren> <"define-library"> <intertoken-space>
library-name
library-declaration*
<right-paren>
library-name = <left-paren> library-name-part+ <intertoken-space> <right-paren>
<library-name-part> = symbol | uinteger-10
<library-declaration>
= export-declaration
| import-declaration
| begin-declaration
export-declaration =
<left-paren> <'export'> <intertoken-space> export-spec*
<right-paren>
<export-spec> = symbol
import-declaration =
<left-paren> <'import'> <intertoken-space> import-set+ <right-paren>
<import-set>
= library-name
| import-only
| import-except
| import-prefix
| import-rename
import-only =
<left-paren> <'only'> <intertoken-space> import-set symbol+ <right-paren>
import-except =
<left-paren> <'except'> <intertoken-space> import-set symbol+ <right-paren>
import-prefix =
<left-paren> <'prefix'> <intertoken-space> import-set symbol+ <right-paren>
import-rename =
<left-paren> <'rename'> <intertoken-space>
import-set
(<left-paren> symbol symbol <right-paren>)+
<right-paren>
begin-declaration =
<left-paren>
<'begin'> <intertoken-space>
datum*
<right-paren>
+3
View File
@@ -141,6 +141,9 @@
:datum-start identity
:library-start identity
:library-name list
:import-declaration #(vec (cons :import %&))
:export-declaration #(vec (cons :export %&))
:begin-declaration #(vec (cons :begin %&))
:library (fn [lib-name & decls]
#:library {:name lib-name
:declarations decls})