aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Hughes <tim@twistedfury.com>2014-06-18 19:24:56 +0800
committerTim Hughes <tim@twistedfury.com>2014-06-18 19:24:56 +0800
commit2c0c091616cb5a57626c714e8857e31cc39b5ab7 (patch)
tree8833132964562e0cb414082e1910d6a9c71ced13
parent52d7d699021182207853cc657f3633f4f960fcc3 (diff)
downloaddexon-solidity-2c0c091616cb5a57626c714e8857e31cc39b5ab7.tar
dexon-solidity-2c0c091616cb5a57626c714e8857e31cc39b5ab7.tar.gz
dexon-solidity-2c0c091616cb5a57626c714e8857e31cc39b5ab7.tar.bz2
dexon-solidity-2c0c091616cb5a57626c714e8857e31cc39b5ab7.tar.lz
dexon-solidity-2c0c091616cb5a57626c714e8857e31cc39b5ab7.tar.xz
dexon-solidity-2c0c091616cb5a57626c714e8857e31cc39b5ab7.tar.zst
dexon-solidity-2c0c091616cb5a57626c714e8857e31cc39b5ab7.zip
Fixed MSVC compile errors (but missing functionality in LLL parser)
-rw-r--r--Parser.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/Parser.cpp b/Parser.cpp
index de0a5428..98583f33 100644
--- a/Parser.cpp
+++ b/Parser.cpp
@@ -87,9 +87,16 @@ void eth::parseTreeLLL(string const& _s, sp::utree& o_out)
qi::rule<it, qi::ascii::space_type, sp::utree::list_type()> sload = qi::lit("@@") > element;
qi::rule<it, qi::ascii::space_type, sp::utree::list_type()> mstore = '[' > element > ']' > -qi::lit(":") > element;
qi::rule<it, qi::ascii::space_type, sp::utree::list_type()> sstore = qi::lit("[[") > element > qi::lit("]]") > -qi::lit(":") > element;
- qi::rule<it, qi::ascii::space_type, sp::utree()> extra = sload[qi::_val = qi::_1, bind(&sp::utree::tag, qi::_val, 2)] | mload[qi::_val = qi::_1, bind(&sp::utree::tag, qi::_val, 1)] | sstore[qi::_val = qi::_1, bind(&sp::utree::tag, qi::_val, 4)] | mstore[qi::_val = qi::_1, bind(&sp::utree::tag, qi::_val, 3)] | seq[qi::_val = qi::_1, bind(&sp::utree::tag, qi::_val, 5)];
qi::rule<it, qi::ascii::space_type, sp::utree::list_type()> list = '(' > *element > ')';
+
+ // todo: fix compound compile errors in this line for Visual Studio 2013
+#ifndef _MSC_VER
+ qi::rule<it, qi::ascii::space_type, sp::utree()> extra = sload[qi::_val = qi::_1, bind(&sp::utree::tag, qi::_val, 2)] | mload[qi::_val = qi::_1, bind(&sp::utree::tag, qi::_val, 1)] | sstore[qi::_val = qi::_1, bind(&sp::utree::tag, qi::_val, 4)] | mstore[qi::_val = qi::_1, bind(&sp::utree::tag, qi::_val, 3)] | seq[qi::_val = qi::_1, bind(&sp::utree::tag, qi::_val, 5)];
element = atom | list | extra;
+#else
+ element = atom | list/* | extra*/;
+#endif
+
string s;
s.reserve(_s.size());