+
+/*** Modules ***/
+
+// paperjam.cc
+
+extern const char *in_name, *out_name;
+extern bool recalc_bbox;
+extern int debug_level;
+extern int debug_indent;
+extern bool no_auto_transforms;
+
+class paperjam_error : public exception {
+ string message;
+public:
+ paperjam_error(string m) : message(m) { }
+ const char *what() const noexcept override { return message.c_str(); }
+};
+
+// parse.cc
+
+void parse(const char *in, list<cmd *> &cmds);
+void parser_help();
+
+// cmds.cc
+
+extern const cmd_def cmd_table[];
+
+// pdf.cc
+
+void debug_pages(vector<page *> &pages);
+void process(list<cmd *> &cmds);
+vector<page *> run_command_list(list<cmd *> &cmds, vector<page *> &pages);
+vector<BBox> gs_bboxes(const char *in);
+
+class xform_page : public page {
+ page *orig_page;
+ pdf_matrix xform;
+ const char *description;
+public:
+ void render(out_context *out, pdf_matrix xform) override;
+ void debug_dump() override;
+ xform_page(page *p, const char *desc, pdf_matrix xf);
+};