}
static
-aligned_unique_ptr<NFA> buildOutfix(RoseBuildImpl &build, OutfixInfo &outfix) {
+aligned_unique_ptr<NFA> buildOutfix(const RoseBuildImpl &build, OutfixInfo &outfix) {
assert(!outfix.is_dead()); // should not be marked dead.
auto n = boost::apply_visitor(OutfixBuilder(build), outfix.proto);
}
static
-void makeRoleLookaround(RoseBuildImpl &build, build_context &bc, RoseVertex v,
- RoseProgram &program) {
+void makeRoleLookaround(const RoseBuildImpl &build, build_context &bc,
+ RoseVertex v, RoseProgram &program) {
if (!build.cc.grey.roseLookaroundMasks) {
return;
}
}
static
-void makeRoleCheckLeftfix(RoseBuildImpl &build, build_context &bc, RoseVertex v,
- RoseProgram &program) {
+void makeRoleCheckLeftfix(const RoseBuildImpl &build, build_context &bc,
+ RoseVertex v, RoseProgram &program) {
auto it = bc.leftfix_info.find(v);
if (it == end(bc.leftfix_info)) {
return;
}
static
-void makeRoleAnchoredDelay(RoseBuildImpl &build, build_context &bc,
+void makeRoleAnchoredDelay(const RoseBuildImpl &build, build_context &bc,
RoseVertex v, RoseProgram &program) {
// Only relevant for roles that can be triggered by the anchored table.
if (!build.isAnchored(v)) {
}
static
-void makeCatchup(RoseBuildImpl &build, build_context &bc,
+void makeCatchup(const RoseBuildImpl &build, const build_context &bc,
const flat_set<ReportID> &reports, RoseProgram &program) {
if (!bc.needs_catchup) {
return;
}
static
-void makeCatchupMpv(RoseBuildImpl &build, build_context &bc, ReportID id,
- RoseProgram &program) {
+void makeCatchupMpv(const RoseBuildImpl &build, const build_context &bc,
+ ReportID id, RoseProgram &program) {
if (!bc.needs_mpv_catchup) {
return;
}
}
static
-void makeRoleReports(RoseBuildImpl &build, build_context &bc, RoseVertex v,
- RoseProgram &program) {
+void makeRoleReports(const RoseBuildImpl &build, const build_context &bc,
+ RoseVertex v, RoseProgram &program) {
const auto &g = build.g;
/* we are a suffaig - need to update role to provide som to the
}
static
-void makeRoleSuffix(RoseBuildImpl &build, build_context &bc, RoseVertex v,
- RoseProgram &program) {
+void makeRoleSuffix(const RoseBuildImpl &build, const build_context &bc,
+ RoseVertex v, RoseProgram &program) {
const auto &g = build.g;
if (!g[v].suffix) {
return;
}
static
-void makeRoleGroups(RoseBuildImpl &build, ProgramBuild &prog_build,
+void makeRoleGroups(const RoseBuildImpl &build, ProgramBuild &prog_build,
RoseVertex v, RoseProgram &program) {
const auto &g = build.g;
rose_group groups = g[v].groups;
}
static
-void makeRoleInfixTriggers(RoseBuildImpl &build, build_context &bc,
+void makeRoleInfixTriggers(const RoseBuildImpl &build, const build_context &bc,
RoseVertex u, RoseProgram &program) {
const auto &g = build.g;
}
static
-void makeRoleEagerEodReports(RoseBuildImpl &build, build_context &bc,
+void makeRoleEagerEodReports(const RoseBuildImpl &build, build_context &bc,
RoseVertex v, RoseProgram &program) {
RoseProgram eod_program;
}
static
-RoseProgram makeProgram(RoseBuildImpl &build, build_context &bc,
+RoseProgram makeProgram(const RoseBuildImpl &build, build_context &bc,
ProgramBuild &prog_build, const RoseEdge &e) {
const RoseGraph &g = build.g;
auto v = target(e, g);
}
static
-void addPredBlocksAny(build_context &bc, map<u32, RoseProgram> &pred_blocks,
+void addPredBlocksAny(const build_context &bc,
+ map<u32, RoseProgram> &pred_blocks,
RoseProgram &program) {
RoseProgram sparse_program;
}
static
-void addPredBlocksMulti(build_context &bc, map<u32, RoseProgram> &pred_blocks,
+void addPredBlocksMulti(const build_context &bc,
+ map<u32, RoseProgram> &pred_blocks,
RoseProgram &program) {
assert(!pred_blocks.empty());
}
static
-void addPredBlocks(build_context &bc, map<u32, RoseProgram> &pred_blocks,
+void addPredBlocks(const build_context &bc, map<u32, RoseProgram> &pred_blocks,
RoseProgram &program) {
// Trim empty blocks, if any exist.
for (auto it = pred_blocks.begin(); it != pred_blocks.end();) {
}
static
-bool hasDelayedLiteral(RoseBuildImpl &build,
+bool hasDelayedLiteral(const RoseBuildImpl &build,
const vector<RoseEdge> &lit_edges) {
auto is_delayed = bind(&RoseBuildImpl::isDelayed, &build, _1);
for (const auto &e : lit_edges) {
}
static
-RoseProgram buildLitInitialProgram(RoseBuildImpl &build, build_context &bc,
- ProgramBuild &prog_build, u32 lit_id,
+RoseProgram buildLitInitialProgram(const RoseBuildImpl &build,
+ build_context &bc, ProgramBuild &prog_build,
+ u32 lit_id,
const vector<RoseEdge> &lit_edges) {
RoseProgram program;
}
static
-RoseProgram buildLiteralProgram(RoseBuildImpl &build, build_context &bc,
+RoseProgram buildLiteralProgram(const RoseBuildImpl &build, build_context &bc,
ProgramBuild &prog_build, u32 lit_id,
const vector<RoseEdge> &lit_edges,
bool is_anchored_program) {
}
static
-u32 writeLiteralProgram(RoseBuildImpl &build, build_context &bc,
+u32 writeLiteralProgram(const RoseBuildImpl &build, build_context &bc,
ProgramBuild &prog_build, const flat_set<u32> &lit_ids,
const map<u32, vector<RoseEdge>> &lit_edge_map,
bool is_anchored_program) {
}
static
-u32 writeDelayRebuildProgram(RoseBuildImpl &build, build_context &bc,
+u32 writeDelayRebuildProgram(const RoseBuildImpl &build, build_context &bc,
ProgramBuild &prog_build,
const flat_set<u32> &lit_ids) {
assert(!lit_ids.empty());
* programs.
*/
static
-pair<u32, u32> writeDelayPrograms(RoseBuildImpl &build, build_context &bc,
+pair<u32, u32> writeDelayPrograms(const RoseBuildImpl &build, build_context &bc,
ProgramBuild &prog_build) {
auto lit_edge_map = findEdgesByLiteral(build);
* programs.
*/
static
-pair<u32, u32> writeAnchoredPrograms(RoseBuildImpl &build, build_context &bc,
+pair<u32, u32> writeAnchoredPrograms(const RoseBuildImpl &build,
+ build_context &bc,
ProgramBuild &prog_build) {
auto lit_edge_map = findEdgesByLiteral(build);
}
static
-pair<u32, u32> buildReportPrograms(RoseBuildImpl &build, build_context &bc) {
+pair<u32, u32> buildReportPrograms(const RoseBuildImpl &build,
+ build_context &bc) {
const auto reports = findEngineReports(build);
vector<u32> programs;
programs.reserve(reports.size());
}
static
-RoseProgram makeEodAnchorProgram(RoseBuildImpl &build, build_context &bc,
+RoseProgram makeEodAnchorProgram(const RoseBuildImpl &build,
+ const build_context &bc,
ProgramBuild &prog_build, const RoseEdge &e,
const bool multiple_preds) {
const RoseGraph &g = build.g;
}
static
-void addEodAnchorProgram(RoseBuildImpl &build, build_context &bc,
+void addEodAnchorProgram(const RoseBuildImpl &build, const build_context &bc,
ProgramBuild &prog_build, bool in_etable,
RoseProgram &program) {
const RoseGraph &g = build.g;
}
static
-void addEodEventProgram(RoseBuildImpl &build, build_context &bc,
+void addEodEventProgram(const RoseBuildImpl &build, build_context &bc,
ProgramBuild &prog_build, RoseProgram &program) {
if (build.eod_event_literal_id == MO_INVALID_IDX) {
return;
}
static
-u32 writeEodProgram(RoseBuildImpl &build, build_context &bc,
+u32 writeEodProgram(const RoseBuildImpl &build, build_context &bc,
ProgramBuild &prog_build, u32 eodNfaIterOffset) {
RoseProgram program;
}
static
-aligned_unique_ptr<RoseEngine> addSmallWriteEngine(RoseBuildImpl &build,
+aligned_unique_ptr<RoseEngine> addSmallWriteEngine(const RoseBuildImpl &build,
aligned_unique_ptr<RoseEngine> rose) {
assert(rose);