From 2c0c091616cb5a57626c714e8857e31cc39b5ab7 Mon Sep 17 00:00:00 2001 From: Tim Hughes Date: Wed, 18 Jun 2014 12:24:56 +0100 Subject: [PATCH] Fixed MSVC compile errors (but missing functionality in LLL parser) --- Parser.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Parser.cpp b/Parser.cpp index de0a5428a..98583f332 100644 --- a/Parser.cpp +++ b/Parser.cpp @@ -87,9 +87,16 @@ void eth::parseTreeLLL(string const& _s, sp::utree& o_out) qi::rule sload = qi::lit("@@") > element; qi::rule mstore = '[' > element > ']' > -qi::lit(":") > element; qi::rule sstore = qi::lit("[[") > element > qi::lit("]]") > -qi::lit(":") > element; - qi::rule 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 list = '(' > *element > ')'; + + // todo: fix compound compile errors in this line for Visual Studio 2013 +#ifndef _MSC_VER + qi::rule 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());