This commit is contained in:
1 parent
a4e068d09b
commit
aa63cf2eec
3 files changed
+58
-3
No files matched your search
+41
-2
@@ -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>
|
||||
@@ -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})
|
||||
|
||||
Reference in new issue
Block a user