/usr/lib/python3/dist-packages/pyutilib/ply/ply.py is in python3-pyutilib 5.3.5-1.
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 | # _________________________________________________________________________
#
# PyUtilib: A Python utility library.
# Copyright (c) 2008 Sandia Corporation.
# This software is distributed under the BSD License.
# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
# the U.S. Government retains certain rights in this software.
# _________________________________________________________________________
__all__ = ['ply_init', 't_newline', 't_ignore', 't_COMMENT', '_find_column', 'p_error']
#
# Utility functions that are used with PLY
#
def ply_init(data):
global _parsedata
_parsedata=data
global _init
_init = True
def t_newline(t):
r'[\n]+'
global _init
if _init:
t.lexer.lineno = len(t.value)
_init = False
else:
t.lexer.lineno += len(t.value)
# Ignore space and tab
t_ignore = " \t\r"
# Discard comments
def t_COMMENT(t):
r'\#[^\n]*'
pass
# Tokens in comments are discarded.
#
# Compute column.
# input is the input text string
# token is a token instance
#
def _find_column(input,token):
i = token.lexpos
while i > 0:
if input[i] == '\n': break
i -= 1
column = (token.lexpos - i)+1
return column
def p_error(p):
if p is None:
tmp = "Syntax error at end of file."
else:
tmp = "Syntax error at token "
if p.type is "":
tmp = tmp + "''"
else:
tmp = tmp + str(p.type)
tmp = tmp + " with value '"+str(p.value)+"'"
tmp = tmp + " in line " + str(p.lineno)
tmp = tmp + " at column "+str(_find_column(_parsedata,p))
raise IOError(tmp)
|