Commit 2ab7c646 authored by Robert Goldman's avatar Robert Goldman

Better document include directives.

Added :read-file-line to the documentation.
Add "version-specifier" rules to the defsystem grammar.
Clarify the :at option discussion (it's the option as a whole that is
optional, not just the keyword).
parent e0d51572
...@@ -1490,6 +1490,12 @@ simple-component-name := string ...@@ -1490,6 +1490,12 @@ simple-component-name := string
pathname-specifier := pathname | string | symbol pathname-specifier := pathname | string | symbol
version-specifier := string
| (:read-file-form <pathname-specifier> <form-specifier>?)
| (:read-file-line <pathname-specifier> <line-specifier>?)
line-specifier := :at integer # base zero
form-specifier := :at [ integer | ( integer+ )]
method-form := (operation-name qual lambda-list @Arest{} body) method-form := (operation-name qual lambda-list @Arest{} body)
qual := method qualifier? qual := method qualifier?
...@@ -1689,12 +1695,17 @@ Instead of a string representing the version, ...@@ -1689,12 +1695,17 @@ Instead of a string representing the version,
the @code{:version} argument can be an expression that is resolved to the @code{:version} argument can be an expression that is resolved to
such a string using the following trivial domain-specific language: such a string using the following trivial domain-specific language:
in addition to being a literal string, it can be an expression of the form in addition to being a literal string, it can be an expression of the form
@code{(:read-file-form <pathname-or-string> :at <access-at-specifier>)}, @code{(:read-file-form <pathname-or-string> [:at <access-at-specifier]>)},
which will be resolved by reading a form in the specified pathname or @code{(:read-file-line <pathname-or-string> [:at
(read as a subpathname of the current system if relative or a unix-namestring). <access-at-specifier]?>)}.
As the name suggests, the former will be resolved by reading a form in the specified pathname
(read as a subpathname of the current system if relative or a
unix-namestring), and the latter by reading a line.
You may use a @code{uiop:access-at} specifier You may use a @code{uiop:access-at} specifier
with the (optional) @code{:at} keyword, with the @code{:at} keyword,
by default the specifier is @code{0}, meaning the first form is returned; by default the specifier is @code{0}, meaning the first form/line is
returned.
For @code{:read-file-form},
subforms can also be specified, with e.g. @code{(1 2 2)} specifying subforms can also be specified, with e.g. @code{(1 2 2)} specifying
``the third subform (index 2) of the third subform (index 2) of the second form (index 1)'' ``the third subform (index 2) of the third subform (index 2) of the second form (index 1)''
in the file (mind the off-by-one error in the English language). in the file (mind the off-by-one error in the English language).
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment