diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-02-17 17:46:54 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-02-17 17:46:54 -0800 |
commit | 849322a1135479f79f7d94b8b032486efe7955a8 (patch) | |
tree | 8f813863d148fbbab6faabd42324bebbad90db34 /src/wasm-printing.h | |
parent | 252962faba97b68684a470447c7202cf27ad8c05 (diff) | |
parent | 10b929720a8701ef2a960f5b45e39d7a999cca41 (diff) | |
download | binaryen-849322a1135479f79f7d94b8b032486efe7955a8.tar.gz binaryen-849322a1135479f79f7d94b8b032486efe7955a8.tar.bz2 binaryen-849322a1135479f79f7d94b8b032486efe7955a8.zip |
Merge pull request #200 from WebAssembly/print-pass
Move printing to a pass
Diffstat (limited to 'src/wasm-printing.h')
-rw-r--r-- | src/wasm-printing.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/wasm-printing.h b/src/wasm-printing.h new file mode 100644 index 000000000..6d8ed7c8a --- /dev/null +++ b/src/wasm-printing.h @@ -0,0 +1,49 @@ +/* + * Copyright 2016 WebAssembly Community Group participants + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __wasm_printing_h__ +#define __wasm_printing_h__ + +#include "wasm.h" +#include "pass.h" + +namespace wasm { + +inline std::ostream& printWasm(Module* module, std::ostream& o) { + PassRunner passRunner(nullptr); + passRunner.add<Printer>(o); + passRunner.run(module); + return o; +} + +extern std::ostream& printWasm(Expression* expression, std::ostream& o); + +} + +namespace std { + +std::ostream& operator<<(std::ostream& o, wasm::Module* module) { + return wasm::printWasm(module, o); +} + +std::ostream& operator<<(std::ostream& o, wasm::Expression* expression) { + return wasm::printWasm(expression, o); +} + +} + +#endif + |