Do not accept 0-length tokens

This commit is contained in:
Josh Holtrop 2021-06-06 15:29:30 -04:00
parent 7f54778ba8
commit 930ac56148

View File

@ -33,15 +33,18 @@ module Imbecile
end end
def process_nfa_state_set(nfa_state_set) def process_nfa_state_set(nfa_state_set)
state = @states[@nfa_state_sets[nfa_state_set]] state_id = @nfa_state_sets[nfa_state_set]
nfa_state_set.each do |nfa_state| state = @states[state_id]
if nfa_state.accepts if state_id > 0
if state.accepts nfa_state_set.each do |nfa_state|
if nfa_state.accepts.id < state.accepts.id if nfa_state.accepts
if state.accepts
if nfa_state.accepts.id < state.accepts.id
state.accepts = nfa_state.accepts
end
else
state.accepts = nfa_state.accepts state.accepts = nfa_state.accepts
end end
else
state.accepts = nfa_state.accepts
end end
end end
end end