Commit befa2936 authored by Guido van Rossum's avatar Guido van Rossum

Attempt at speeding up.

parent a594fabb
...@@ -118,10 +118,10 @@ class _newobj(): ...@@ -118,10 +118,10 @@ class _newobj():
# 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 @@ _parse_func = { \ ...@@ -144,16 +144,18 @@ _parse_func = { \
# 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): ...@@ -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 @@ class _newobj(): ...@@ -118,10 +118,10 @@ class _newobj():
# 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 @@ _parse_func = { \ ...@@ -144,16 +144,18 @@ _parse_func = { \
# 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): ...@@ -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)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment