summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2015-11-03 21:31:47 -0800
committerAlon Zakai <alonzakai@gmail.com>2015-11-03 21:31:47 -0800
commit0866a86b24beaccaf5f711a8aa99d1cbfbf77046 (patch)
tree09375e7e9df4718b23b62ff80eeae3647a45fbe6
parent643352df3c52022c3a13898fa00bdfa975e4e63c (diff)
downloadbinaryen-0866a86b24beaccaf5f711a8aa99d1cbfbf77046.tar.gz
binaryen-0866a86b24beaccaf5f711a8aa99d1cbfbf77046.tar.bz2
binaryen-0866a86b24beaccaf5f711a8aa99d1cbfbf77046.zip
string parsing improvements
-rw-r--r--src/wasm-s-parser.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/wasm-s-parser.h b/src/wasm-s-parser.h
index db70a69b7..3a51e7887 100644
--- a/src/wasm-s-parser.h
+++ b/src/wasm-s-parser.h
@@ -145,10 +145,17 @@ private:
}
Element* parseString() {
+ if (input[0] == '$') input++; // names begin with $, but we don't need that internally
+ bool quoted = false;
+ if (input[0] == '"') {
+ quoted = true;
+ input++;
+ }
char *start = input;
while (input[0] && !isspace(input[0]) && input[0] != ')') input++;
char temp = input[0];
input[0] = 0;
+ if (quoted) input[-1] = 0;
auto ret = allocator.alloc<Element>()->setString(IString(start, false)); // TODO: reuse the string here, carefully
input[0] = temp;
return ret;