Add FA#build_tables

This commit is contained in:
josh committed 2021-06-24 15:06:10 -04:00
1 parent 2122ca02fe
commit 98584ce07a
2 files changed
+22 -1

No files matched your search

+21
View File
@@ -57,6 +57,27 @@ module Imbecile
end
end
def build_tables
transition_table = []
state_table = []
states = enumerate
states.each do |state, id|
state_table << {
transition_table_index: transition_table.size,
n_transitions: state.transitions.size,
accepts: state.accepts ? state.accepts.id : 0xFFFFFFFF,
}
state.transitions.each do |transition|
transition_table << {
first: transition.code_point_range.first,
last: transition.code_point_range.last,
destination: states[transition.destination],
}
end
end
[transition_table, state_table]
end
end
end