Revised(5) Report on the Algorithmic Language Scheme - Transformers

### 7.1.5 Transformers

    <transformer spec> ---> (syntax-rules (<identifier>*) <syntax rule>*)

    <syntax rule> ---> (<pattern> <template>)

    <pattern> ---> <pattern identifier>
                 | (<pattern>*)
                 | (<pattern>+ . <pattern>)
                 | (<pattern>* <pattern> <ellipsis>)
                 | #(<pattern>*)
                 | #(<pattern>* <pattern> <ellipsis>)
                 | <pattern datum>

    <pattern datum> ---> <string> | <character> | <boolean> | <number>

    <template> ---> <pattern identifier>
                  | (<template element>*)
                  | (<template element>+ . <template>)
                  | #(<template element>*)
                  | <template datum>

    <template element> ---> <template> | <template> <ellipsis>

    <template datum> ---> <pattern datum>

    <pattern identifier> ---> <any identifier except ...>

    <ellipsis> ---> <the identifier ...>