$core.add_artefact_engine Comfpile::ParserEngine, file_regex: /^(.+)\.(h|c|cpp)$/, search_regexes: [ { regex: /^#include\s*[<"](?.+)[>"]/, key: 'include' }, { regex: /\/\/\s*comf\.(?\w+)[=:]\s*(?.+)/ } ] $core.add_artefact_engine do |engine| engine.add_recipe(:dependency_list, /^(.+)\.(h|c|cpp)$/) do |match, a| a.require_artefact :dependency_analysis, a.target a.require_artefact :dependency_analysis_include, a.target a.add_step do deps_artefact = find_artefact(:dependency_analysis, @target) @parameters[:dependency_list] = deps_artefact.dependencies end end engine.add_recipe(:x86_debug, /^run (.+)/) do |match, a| a.require_artefact :parsed, "#{match[1]}.cpp" end engine.add_recipe(:x86_debug, /(.+)\.o$/) do |match, a| a.require_artefact :sourcefile, "#{match[1]}.cpp" a.add_step do end end engine.add_recipe(:execute, /(.*)/) do |match, a| a.parent_artefact :executable, match[0] a.add_step do @parent_artefact end end end