diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-04-04 16:45:11 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-04-04 17:38:40 -0700 |
commit | 70a61e1b1fc2f85c81201b6a1e7d2e71e36dcee3 (patch) | |
tree | 728d5bb76af50057a7804c78cbae833d3f3ece7e /src | |
parent | 178b869dcdab8ad5877101cbc0347a23e80b02c0 (diff) | |
download | binaryen-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.cpp | 30 | ||||
-rw-r--r-- | src/js/binaryen.idl | 51 | ||||
-rw-r--r-- | src/wasm-s-parser.h | 3 |
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 |