comfpile-old/bin/cpp-engine_old.rb
2023-08-12 20:39:22 +02:00

48 lines
No EOL
1.2 KiB
Ruby

$core.add_artefact_engine Comfpile::ParserEngine,
file_regex: /^(.+)\.(h|c|cpp)$/,
search_regexes: [
{
regex: /^#include\s*[<"](?<value>.+)[>"]/,
key: 'include'
},
{
regex: /\/\/\s*comf\.(?<key>\w+)[=:]\s*(?<value>.+)/
}
]
$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