load_results = function(filename) results = {} Global_state.results = {} -- cache ordering for when we modify Data local f, err = App.open_for_reading(filename) if err then error(err) end for line in f:lines() do local _ = -- turn rest of loop (a single giant expr) into a statement to satisfy the Lua parser do_if_match(line, '^%s*(%S+)%s+beat%s+(%S+)%s*$', function(subject, object) table.insert(Global_state.results, {subject, object}) if results[subject] == nil then results[subject] = {} end results[subject][object] = 2 if results[object] == nil then results[object] = {} end results[object][subject] = 0 end) or error('incorrect format: '..line) end f:close() return results end