This file is indexed.

/usr/lib/python3/dist-packages/audiotools/toc/tokrules.py is in audiotools 3.1.1-1+b1.

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
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# Audio Tools, a module and set of tools for manipulating audio data
# Copyright (C) 2007-2015  Brian Langenberger

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

RESERVED = {"CATALOG": "CATALOG",
            "CD_DA": "CD_DA",
            "CD_ROM": "CD_ROM",
            "CD_ROM_XA": "CD_ROM_XA",
            "CD_TEXT": "CD_TEXT",
            "TRACK": "TRACK",
            "AUDIO": "AUDIO",
            "MODE1": "MODE1",
            "MODE1_RAW": "MODE1_RAW",
            "MODE2": "MODE2",
            "MODE2_FORM1": "MODE2_FORM1",
            "MODE2_FORM2": "MODE2_FORM2",
            "MODE2_FORM_MIX": "MODE2_FORM_MIX",
            "MODE2_RAW": "MODE2_RAW",
            "RW": "RW",
            "RW_RAW": "RW_RAW",
            "NO": "NO",
            "COPY": "COPY",
            "PRE_EMPHASIS": "PRE_EMPHASIS",
            "TWO_CHANNEL_AUDIO": "TWO_CHANNEL_AUDIO",
            "FOUR_CHANNEL_AUDIO": "FOUR_CHANNEL_AUDIO",
            "ISRC": "ISRC",
            "SILENCE": "SILENCE",
            "ZERO": "ZERO",
            "FILE": "FILE",
            "AUDIOFILE": "AUDIOFILE",
            "DATAFILE": "DATAFILE",
            "FIFO": "FIFO",
            "START": "START",
            "PREGAP": "PREGAP",
            "INDEX": "INDEX",
            "LANGUAGE_MAP": "LANGUAGE_MAP",
            "LANGUAGE": "LANGUAGE",
            "TITLE": "TITLE",
            "PERFORMER": "PERFORMER",
            "SONGWRITER": "SONGWRITER",
            "COMPOSER": "COMPOSER",
            "ARRANGER": "ARRANGER",
            "MESSAGE": "MESSAGE",
            "DISC_ID": "DISC_ID",
            "GENRE": "GENRE",
            "TOC_INFO1": "TOC_INFO1",
            "TOC_INFO2": "TOC_INFO2",
            "UPC_EAN": "UPC_EAN",
            "SIZE_INFO": "SIZE_INFO",

            "EN": "EN"}

tokens = ["COMMENT",
          "START_BLOCK",
          "END_BLOCK",
          "COLON",
          "COMMA",
          "TIMESTAMP",
          "NUMBER",
          "ID",
          "STRING"] + list(RESERVED.values())


def t_COMMENT(t):
    r'//.*'
    pass

t_START_BLOCK = r'{'
t_END_BLOCK = r'}'
t_COLON = r':'
t_COMMA = r','


def t_ID(t):
    r'[A-Z][A-Z0-9_]*'
    if t.value in RESERVED.keys():
        t.type = RESERVED[t.value]
    return t


def t_STRING(t):
    r'\"(\\.|[^"])*\"'
    from re import sub
    t.value = sub(r'\\.', lambda s: s.group(0)[1:], t.value[1:-1])
    return t


def t_TIMESTAMP(t):
    r'[0-9]{1,3}:[0-9]{1,2}:[0-9]{1,2}'
    (m, s, f) = t.value.split(":")
    t.value = ((int(m) * 75 * 60) + (int(s) * 75) + (int(f)))
    return t


def t_NUMBER(t):
    r'[0-9]+'
    t.value = int(t.value)
    return t

t_ignore = " \r\t"


def t_newline(t):
    r'\n+'
    t.lexer.lineno += t.value.count("\n")


def t_error(t):
    raise ValueError("illegal character %s" % (repr(t.value[0])))