{ stdenv, crystal, fetchFromGitHub }:
let
version = "0489d47b191ecf8501787355b948801506e7c70f";
src = fetchFromGitHub {
owner = "DanilaFe";
repo = "pegasus";
rev = version;
sha256 = "097m7l16byis07xlg97wn5hdsz9k6c3h1ybzd2i7xhkj24kx230s";
};
in
crystal.buildCrystalPackage {
pname = "pegasus";
inherit version;
inherit src;
crystalBinaries.pegasus.src = "src/pegasus.cr";
crystalBinaries.pegasus-dot.src = "src/tools/dot/pegasus_dot.cr";
crystalBinaries.pegasus-sim.src = "src/tools/sim/pegasus_sim.cr";
crystalBinaries.pegasus-c.src = "src/generators/c/pegasus_c.cr";
crystalBinaries.pegasus-csem.src = "src/generators/csem/pegasus_csem.cr";
crystalBinaries.pegasus-crystal.src = "src/generators/crystal/pegasus_crystal.cr";
crystalBinaries.pegasus-crystalsem.src = "src/generators/crystalsem/pegasus_crystalsem.cr";
}