summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-04-04 16:45:11 -0700
committerAlon Zakai <alonzakai@gmail.com>2016-04-04 17:38:40 -0700
commit70a61e1b1fc2f85c81201b6a1e7d2e71e36dcee3 (patch)
tree728d5bb76af50057a7804c78cbae833d3f3ece7e /src
parent178b869dcdab8ad5877101cbc0347a23e80b02c0 (diff)
downloadbinaryen-70a61e1b1fc2f85c81201b6a1e7d2e71e36dcee3.tar.gz
binaryen-70a61e1b1fc2f85c81201b6a1e7d2e71e36dcee3.tar.bz2
binaryen-70a61e1b1fc2f85c81201b6a1e7d2e71e36dcee3.zip
add simpler constructor for SExpressionWasmBuilder
Diffstat (limited to 'src')
-rw-r--r--src/binaryen-js.cpp30
-rw-r--r--src/js/binaryen.idl51
-rw-r--r--src/wasm-s-parser.h3
3 files changed, 84 insertions, 0 deletions
diff --git a/src/binaryen-js.cpp b/src/binaryen-js.cpp
new file mode 100644
index 000000000..3112fe703
--- /dev/null
+++ b/src/binaryen-js.cpp
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ */
+
+#include <memory>
+
+#include "pass.h"
+#include "support/command-line.h"
+#include "support/file.h"
+#include "wasm-interpreter.h"
+#include "wasm-printing.h"
+#include "wasm-s-parser.h"
+#include "wasm-validator.h"
+
+using namespace wasm;
+
+#include "../glue.cpp"
+
diff --git a/src/js/binaryen.idl b/src/js/binaryen.idl
new file mode 100644
index 000000000..2297cfd5f
--- /dev/null
+++ b/src/js/binaryen.idl
@@ -0,0 +1,51 @@
+
+interface Literal {
+ void Literal(double x);
+};
+
+interface Name {
+ void Name(DOMString x);
+};
+
+interface Module {
+};
+
+interface AllocatingModule {
+};
+
+AllocatingModule implements Module;
+
+[Prefix="ModuleInstance::", NoDelete]
+interface ExternalInterface {
+};
+
+interface ShellExternalInterface {
+};
+
+ShellExternalInterface implements ExternalInterface;
+
+interface ModuleInstance {
+ void ModuleInstance([Ref] Module m, ExternalInterface i);
+
+ [Value] Literal callExport([Ref] Name name, [Ref] LiteralList arguments);
+};
+
+[Prefix="ModuleInstance::"]
+interface LiteralList {
+ void push_back([Ref] Literal l);
+};
+
+// S-Expressions
+
+interface Element {
+};
+
+interface SExpressionParser {
+ void SExpressionParser(DOMString input);
+ attribute Element root;
+};
+
+interface SExpressionWasmBuilder {
+ void SExpressionWasmBuilder([Ref] AllocatingModule wasm, [Ref] Element input, boolean debug);
+};
+
diff --git a/src/wasm-s-parser.h b/src/wasm-s-parser.h
index c13cd3512..fb3268877 100644
--- a/src/wasm-s-parser.h
+++ b/src/wasm-s-parser.h
@@ -255,6 +255,9 @@ public:
}
}
+ // constructor without onError
+ SExpressionWasmBuilder(AllocatingModule& wasm, Element& module, bool debug=false) : SExpressionWasmBuilder(wasm, module, [&]() { abort(); }, debug) {}
+
private:
// pre-parse types and function definitions, so we know function return types before parsing their contents