local cb = function(task) task:insert_result('TOP', 1.0) end local cb_dep1 = function(task) if task:get_symbol('TOP') then task:insert_result('DEP1', 1.0) end end local cb_gen = function(num) local cb_dep = function(task) if task:get_symbol('DEP' .. tostring(num)) then task:insert_result('DEP' .. tostring(num + 1), 1.0) end end return cb_dep end local id = rspamd_config:register_callback_symbol(1.0, cb) rspamd_config:register_virtual_symbol('TOP', 1.0, id) rspamd_config:register_symbol('DEP1', 1.0, cb_dep1) rspamd_config:register_dependency('DEP1', 'TOP') for i = 2,10 do rspamd_config:register_symbol('DEP' .. tostring(i), 1.0, cb_gen(i - 1)) rspamd_config:register_dependency('DEP' .. tostring(i), 'DEP' .. tostring(i - 1)) end