Commit 2721708d authored by Stefan Behnel's avatar Stefan Behnel

another minor scanner speed-up

parent 654a6962
...@@ -163,7 +163,8 @@ class Scanner(object): ...@@ -163,7 +163,8 @@ class Scanner(object):
buffer = self.buffer buffer = self.buffer
buf_start_pos = self.buf_start_pos buf_start_pos = self.buf_start_pos
buf_len = len(buffer) buf_len = len(buffer)
backup_state = None b_action, b_cur_pos, b_cur_line, b_cur_line_start, b_cur_char, b_input_state, b_next_pos = \
None, 0, 0, 0, u'', 0, 0
trace = self.trace trace = self.trace
while 1: while 1:
if trace: #TRACE# if trace: #TRACE#
...@@ -173,8 +174,8 @@ class Scanner(object): ...@@ -173,8 +174,8 @@ class Scanner(object):
#action = state.action #@slow #action = state.action #@slow
action = state['action'] #@fast action = state['action'] #@fast
if action is not None: if action is not None:
backup_state = ( b_action, b_cur_pos, b_cur_line, b_cur_line_start, b_cur_char, b_input_state, b_next_pos = \
action, cur_pos, cur_line, cur_line_start, cur_char, input_state, next_pos) action, cur_pos, cur_line, cur_line_start, cur_char, input_state, next_pos
# End inlined self.save_for_backup() # End inlined self.save_for_backup()
c = cur_char c = cur_char
#new_state = state.new_state(c) #@slow #new_state = state.new_state(c) #@slow
...@@ -234,9 +235,11 @@ class Scanner(object): ...@@ -234,9 +235,11 @@ class Scanner(object):
if trace: #TRACE# if trace: #TRACE#
print("blocked") #TRACE# print("blocked") #TRACE#
# Begin inlined: action = self.back_up() # Begin inlined: action = self.back_up()
if backup_state is not None: if b_action is not None:
(action, cur_pos, cur_line, cur_line_start, (action, cur_pos, cur_line, cur_line_start,
cur_char, input_state, next_pos) = backup_state cur_char, input_state, next_pos) = \
(b_action, b_cur_pos, b_cur_line, b_cur_line_start,
b_cur_char, b_input_state, b_next_pos)
else: else:
action = None action = None
break # while 1 break # while 1
......
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