This file is indexed.

/usr/share/r6rs/nanopass/syntaxconvert.ss is in r6rs-nanopass-dev 1.9+git20160429.g1f7e80b-1build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
;;; Copyright (c) 2000-2015 Dipanwita Sarkar, Andrew W. Keep, R. Kent Dybvig, Oscar Waddell
;;; See the accompanying file Copyright for details

(library (nanopass syntaxconvert)
  (export convert-pattern)
  (import (rnrs) (nanopass helpers)) 

  (define convert-pattern
    ; accepts pattern & keys
    ; returns syntax-dispatch pattern & ids
    (lambda (pattern)
      (define cvt*
        (lambda (p* n flds lvls maybes)
          (if (null? p*)
              (values '() flds lvls maybes)
              (let-values ([(y flds lvls maybes) (cvt* (cdr p*) n flds lvls maybes)])
                (let-values ([(x flds lvls maybes) (cvt (car p*) n flds lvls maybes)])
                  (values (cons x y) flds lvls maybes))))))
      (define cvt
        (lambda (p n flds lvls maybes)
          (if (identifier? p)
              (values 'any (cons p flds) (cons n lvls) (cons #f maybes))
              (syntax-case p ()
                [(x dots)
                 (ellipsis? (syntax dots))
                 (let-values ([(p flds lvls maybes) (cvt (syntax x) (fx+ n 1) flds lvls maybes)])
                   (values (if (eq? p 'any) 'each-any (vector 'each p)) flds lvls maybes))]
                [(x dots y ... . z) 
                 (ellipsis? (syntax dots))
                 (let-values ([(z flds lvls maybes) (cvt (syntax z) n flds lvls maybes)])
                   (let-values ([(y flds lvls maybes) (cvt* (syntax (y ...)) n flds lvls maybes)])
                     (let-values ([(x flds lvls maybes) (cvt (syntax x) (fx+ n 1) flds lvls maybes)])
                       (values `#(each+ ,x ,(reverse y) ,z) flds lvls maybes))))]
                [(maybe x)
                 (and (identifier? #'x) (eq? (datum maybe) 'maybe))
                 (values 'any (cons #'x flds) (cons n lvls) (cons #t maybes))]
                [(x . y)
                 (let-values ([(y flds lvls maybes) (cvt (syntax y) n flds lvls maybes)])
                   (let-values ([(x flds lvls maybes) (cvt (syntax x) n flds lvls maybes)])
                     (values (cons x y) flds lvls maybes)))]
                [() (values '() flds lvls maybes)]
                [oth (syntax-violation 'cvt "unable to find match" #'oth)]))))
      (cvt pattern 0 '() '() '()))))