40 void process(
const std::vector<IR::Block>& pages,
const std::vector<std::string>& symbols,
const std::vector<ValTableElem>& values);
47 [[nodiscard]]
const std::vector<IR::Block>& intermediateRepresentation()
const noexcept;
51 using DualArgs = std::pair<uint16_t, uint16_t>;
62 return std::make_pair(entities[0].primaryArg(), entities[1].primaryArg());
70 std::vector<IR::Block>
m_ir;
74 [[nodiscard]]
bool match(
const std::vector<Instruction>& expected_insts,
const Entities& entities)
const;
75 std::optional<IR::Entity> replaceWithRules(
const std::vector<Rule>& rules,
const Entities& entities);
77 [[nodiscard]]
bool isPositiveNumberInlinable(uint16_t
id)
const;
78 [[nodiscard]] uint16_t numberAsArg(uint16_t
id)
const;