summaryrefslogtreecommitdiff
path: root/src/wasm-s-parser.h
diff options
context:
space:
mode:
authorHeejin Ahn <aheejin@gmail.com>2019-05-21 00:44:13 -0700
committerGitHub <noreply@github.com>2019-05-21 00:44:13 -0700
commit5c33c04d51a64775b8e164a9d38d06c720c6505e (patch)
tree768bfc49bf9070b3f6b8be2d23210ab2bf45c02a /src/wasm-s-parser.h
parent677808afb18a059d3dadcf2be7bd8daade5b77f9 (diff)
downloadbinaryen-5c33c04d51a64775b8e164a9d38d06c720c6505e.tar.gz
binaryen-5c33c04d51a64775b8e164a9d38d06c720c6505e.tar.bz2
binaryen-5c33c04d51a64775b8e164a9d38d06c720c6505e.zip
Refactor type/signature/local parsing methods (NFC) (#2129)
- Created `parseParamOrLocals`, `parseNamedParamOrLocals`, `parseResult`, and `parseTypeRef` and make other methods use them - Deleted some unnecessary member variables
Diffstat (limited to 'src/wasm-s-parser.h')
-rw-r--r--src/wasm-s-parser.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/wasm-s-parser.h b/src/wasm-s-parser.h
index 004fd9840..c37b1b27d 100644
--- a/src/wasm-s-parser.h
+++ b/src/wasm-s-parser.h
@@ -24,6 +24,7 @@
#include "mixed_arena.h"
#include "parsing.h" // for UniqueNameMapper. TODO: move dependency to cpp file?
+#include "wasm-builder.h"
#include "wasm.h"
namespace wasm {
@@ -135,9 +136,6 @@ private:
// function parsing state
std::unique_ptr<Function> currFunction;
- std::map<Name, Type> currLocalTypes;
- size_t localIndex; // params and vars
- size_t otherIndex;
bool brokeToAutoBlock;
UniqueNameMapper nameMapper;
@@ -220,8 +218,13 @@ private:
Expression* makeBreakTable(Element& s);
Expression* makeReturn(Element& s);
+ // Helper functions
Type parseOptionalResultType(Element& s, Index& i);
Index parseMemoryLimits(Element& s, Index i);
+ std::vector<Type> parseParamOrLocal(Element& s);
+ std::vector<NameType> parseNamedParamOrLocal(Element& s, size_t& localIndex);
+ Type parseResult(Element& s);
+ FunctionType* parseTypeRef(Element& s);
void stringToBinary(const char* input, size_t size, std::vector<char>& data);
void parseMemory(Element& s, bool preParseImport = false);