[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Top] | [Table des matières] | [Index] | [ ? ] |
The :inline
feature lets you splice a variable number of elements
into the middle of a list or vector. You use it in a set
,
choice
or repeat
type which appears among the element-types of
a list
or vector
.
Normally, each of the element-types in a list
or vector
describes one and only one element of the list or vector. Thus, if an
element-type is a repeat
, that specifies a list of unspecified length
which appears as one element.
But when the element-type uses :inline
, the value it matches is
merged directly into the containing sequence. For example, if it matches a
list with three elements, those become three elements of the overall
sequence. This is analogous to using ‘,@’ in the backquote construct.
For example, to specify a list whose first element must be baz
and
whose remaining arguments should be zero or more of foo
and
bar
, use this customization type:
(list (const baz) (set :inline t (const foo) (const bar))) |
This matches values such as (baz)
, (baz foo)
, (baz bar)
and (baz foo bar)
.
When the element-type is a choice
, you use :inline
not in the
choice
itself, but in (some of) the alternatives of the
choice
. For example, to match a list which must start with a file
name, followed either by the symbol t
or two strings, use this
customization type:
(list file (choice (const t) (list :inline t string string))) |
If the user chooses the first alternative in the choice, then the overall
list has two elements and the second element is t
. If the user
chooses the second alternative, then the overall list has three elements and
the second and third must be strings.
Ce document a été généré par Eric Reinbold le 13 Octobre 2007 en utilisant texi2html 1.78.