Next: , Previous: , Up: expander lexenv internal   [Index]


15.3.6.6 Internal syntactic bindings: pattern variables

A syntactic binding representing a keyword binding associated to a pattern variable, as created by syntax-case and syntax-rules, has descriptor with format:

(pattern-variable . (?name . ?level))

where: ?name is the lexical gensym representing the name of the pattern variable; ?level is a non–negative exact integer representing the ellipsis nesting level.

The syntax-case patterns below will generate the displayed syntactic binding descriptors:

?a                      ->  (pattern-variable . (?a . 0))
(?a)                    ->  (pattern-variable . (?a . 0))
(((?a)))                ->  (pattern-variable . (?a . 0))
(?a ...)                ->  (pattern-variable . (?a . 1))
((?a) ...)              ->  (pattern-variable . (?a . 1))
((((?a))) ...)          ->  (pattern-variable . (?a . 1))
((?a ...) ...)          ->  (pattern-variable . (?a . 2))
(((?a ...) ...) ...)    ->  (pattern-variable . (?a . 3))