mirror of
https://github.com/python/cpython.git
synced 2025-12-08 06:10:17 +00:00
Attempt at speeding up.
This commit is contained in:
parent
a594fabbfa
commit
befa2936d0
2 changed files with 32 additions and 28 deletions
|
|
@ -118,10 +118,10 @@ def add(self, (name, value)):
|
||||||
# Internal parsing routines.
|
# Internal parsing routines.
|
||||||
#
|
#
|
||||||
def _parse_string(str):
|
def _parse_string(str):
|
||||||
return string.strip(str)
|
return str
|
||||||
|
|
||||||
def _parse_num(str):
|
def _parse_num(str):
|
||||||
return eval(string.strip(str))
|
return eval(str)
|
||||||
|
|
||||||
def _parse_numlist(str):
|
def _parse_numlist(str):
|
||||||
slist = string.split(str)
|
slist = string.split(str)
|
||||||
|
|
@ -144,16 +144,18 @@ def _parse_numlist(str):
|
||||||
# This function parses a line, and returns either
|
# This function parses a line, and returns either
|
||||||
# a string or a tuple (name,value)
|
# a string or a tuple (name,value)
|
||||||
|
|
||||||
|
import regexp
|
||||||
|
|
||||||
def _parse_line(line):
|
def _parse_line(line):
|
||||||
try:
|
a = regexp.match('^([^:]*): *(.*)', line)
|
||||||
colonpos = string.index(line,':')
|
if not a:
|
||||||
except string.index_error:
|
return line
|
||||||
return string.strip(line)
|
name = line[:a[1][1]]
|
||||||
name = line[:colonpos]
|
if name[0] = 'N':
|
||||||
name = string.joinfields(string.split(name),'')
|
name = string.joinfields(string.split(name),'')
|
||||||
name = string.lower(name)
|
name = string.lower(name)
|
||||||
name = string.upper(name[0]) + name[1:]
|
name = string.upper(name[0]) + name[1:]
|
||||||
value = line[colonpos+1:]
|
value = line[a[2][0]:]
|
||||||
try:
|
try:
|
||||||
pf = _parse_func[name]
|
pf = _parse_func[name]
|
||||||
except RuntimeError: # BCOMPAT
|
except RuntimeError: # BCOMPAT
|
||||||
|
|
@ -165,12 +167,12 @@ def _parse_line(line):
|
||||||
|
|
||||||
def _readline(file):
|
def _readline(file):
|
||||||
line = file.readline()
|
line = file.readline()
|
||||||
if line <> '':
|
if not line:
|
||||||
line = line[:-1]
|
raise EOFError
|
||||||
return line
|
return line[:-1]
|
||||||
|
|
||||||
def _parse_1_line(file):
|
def _parse_1_line(file):
|
||||||
line = ''
|
line = _readline(file)
|
||||||
while line = '':
|
while line = '':
|
||||||
line = _readline(file)
|
line = _readline(file)
|
||||||
return _parse_line(line)
|
return _parse_line(line)
|
||||||
|
|
|
||||||
|
|
@ -118,10 +118,10 @@ def add(self, (name, value)):
|
||||||
# Internal parsing routines.
|
# Internal parsing routines.
|
||||||
#
|
#
|
||||||
def _parse_string(str):
|
def _parse_string(str):
|
||||||
return string.strip(str)
|
return str
|
||||||
|
|
||||||
def _parse_num(str):
|
def _parse_num(str):
|
||||||
return eval(string.strip(str))
|
return eval(str)
|
||||||
|
|
||||||
def _parse_numlist(str):
|
def _parse_numlist(str):
|
||||||
slist = string.split(str)
|
slist = string.split(str)
|
||||||
|
|
@ -144,16 +144,18 @@ def _parse_numlist(str):
|
||||||
# This function parses a line, and returns either
|
# This function parses a line, and returns either
|
||||||
# a string or a tuple (name,value)
|
# a string or a tuple (name,value)
|
||||||
|
|
||||||
|
import regexp
|
||||||
|
|
||||||
def _parse_line(line):
|
def _parse_line(line):
|
||||||
try:
|
a = regexp.match('^([^:]*): *(.*)', line)
|
||||||
colonpos = string.index(line,':')
|
if not a:
|
||||||
except string.index_error:
|
return line
|
||||||
return string.strip(line)
|
name = line[:a[1][1]]
|
||||||
name = line[:colonpos]
|
if name[0] = 'N':
|
||||||
name = string.joinfields(string.split(name),'')
|
name = string.joinfields(string.split(name),'')
|
||||||
name = string.lower(name)
|
name = string.lower(name)
|
||||||
name = string.upper(name[0]) + name[1:]
|
name = string.upper(name[0]) + name[1:]
|
||||||
value = line[colonpos+1:]
|
value = line[a[2][0]:]
|
||||||
try:
|
try:
|
||||||
pf = _parse_func[name]
|
pf = _parse_func[name]
|
||||||
except RuntimeError: # BCOMPAT
|
except RuntimeError: # BCOMPAT
|
||||||
|
|
@ -165,12 +167,12 @@ def _parse_line(line):
|
||||||
|
|
||||||
def _readline(file):
|
def _readline(file):
|
||||||
line = file.readline()
|
line = file.readline()
|
||||||
if line <> '':
|
if not line:
|
||||||
line = line[:-1]
|
raise EOFError
|
||||||
return line
|
return line[:-1]
|
||||||
|
|
||||||
def _parse_1_line(file):
|
def _parse_1_line(file):
|
||||||
line = ''
|
line = _readline(file)
|
||||||
while line = '':
|
while line = '':
|
||||||
line = _readline(file)
|
line = _readline(file)
|
||||||
return _parse_line(line)
|
return _parse_line(line)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue