summaryrefslogtreecommitdiff
path: root/src/tools/wasm-as.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/wasm-as.cpp')
-rw-r--r--src/tools/wasm-as.cpp18
1 files changed, 4 insertions, 14 deletions
diff --git a/src/tools/wasm-as.cpp b/src/tools/wasm-as.cpp
index cc4f6fda2..311605326 100644
--- a/src/tools/wasm-as.cpp
+++ b/src/tools/wasm-as.cpp
@@ -18,10 +18,10 @@
// wasm2asm console tool
//
+#include "parser/wat-parser.h"
#include "support/colors.h"
#include "support/file.h"
#include "wasm-io.h"
-#include "wasm-s-parser.h"
#include "wasm-validator.h"
#include "tool-options.h"
@@ -109,19 +109,9 @@ int main(int argc, const char* argv[]) {
Module wasm;
options.applyFeatures(wasm);
- try {
- if (options.debug) {
- std::cerr << "s-parsing..." << std::endl;
- }
- SExpressionParser parser(const_cast<char*>(input.c_str()));
- Element& root = *parser.root;
- if (options.debug) {
- std::cerr << "w-parsing..." << std::endl;
- }
- SExpressionWasmBuilder builder(wasm, *root[0], options.profile);
- } catch (ParseException& p) {
- p.dump(std::cerr);
- Fatal() << "error in parsing input";
+ auto parsed = WATParser::parseModule(wasm, input);
+ if (auto* err = parsed.getErr()) {
+ Fatal() << err->msg;
}
if (options.extra["validate"] != "none") {