summaryrefslogtreecommitdiff
path: root/src/passes/Print.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/passes/Print.cpp')
-rw-r--r--src/passes/Print.cpp26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp
index 056b61939..030fc64cd 100644
--- a/src/passes/Print.cpp
+++ b/src/passes/Print.cpp
@@ -31,8 +31,12 @@ struct PrintSExpression : public WasmVisitor<PrintSExpression, void> {
const char *maybeSpace;
const char *maybeNewLine;
- PrintSExpression(std::ostream& o, bool minify = false)
- : o(o), indent(0), minify(minify) {
+ PrintSExpression(std::ostream& o) : o(o), indent(0) {
+ setMinify(false);
+ }
+
+ void setMinify(bool minify_) {
+ minify = minify_;
maybeSpace = minify ? "" : " ";
maybeNewLine = minify ? "" : "\n";
}
@@ -526,8 +530,6 @@ struct PrintSExpression : public WasmVisitor<PrintSExpression, void> {
}
};
-// Pass entry point. Eventually this will direct printing to one of various options.
-
void Printer::run(PassRunner* runner, Module* module) {
PrintSExpression print(o);
print.visitModule(module);
@@ -536,26 +538,26 @@ void Printer::run(PassRunner* runner, Module* module) {
static RegisterPass<Printer> registerPass("print", "print in s-expression format");
// Prints out a minified module
+
class MinifiedPrinter : public Printer {
public:
MinifiedPrinter() : Printer() {}
MinifiedPrinter(std::ostream& o) : Printer(o) {}
- void run(PassRunner* runner, Module* module) override;
+ void run(PassRunner* runner, Module* module) override {
+ PrintSExpression print(o);
+ print.setMinify(true);
+ print.visitModule(module);
+ }
};
-void MinifiedPrinter::run(PassRunner* runner, Module* module) {
- PrintSExpression print(o, true);
- print.visitModule(module);
-}
-
-
static RegisterPass<MinifiedPrinter> registerMinifyPass("print-minified", "print in minified s-expression format");
// Print individual expressions
std::ostream& WasmPrinter::printExpression(Expression* expression, std::ostream& o, bool minify) {
- PrintSExpression print(o, minify);
+ PrintSExpression print(o);
+ print.setMinify(minify);
print.visit(expression);
return o;
}