Merge pull request #1404 from woodsb02/mono-route
[mono.git] / mcs / class / Microsoft.Build / Microsoft.Build.Internal / ExpressionParserManual.cs
index 44977abf9af3e0990579d90641e4c401c14beef3..73bac64445e11fa5b98bf225bc1d56867c3fb7c8 100644 (file)
@@ -60,14 +60,13 @@ namespace Microsoft.Build.Internal.Expressions
                        while (start < end) {
                                int bak = start;
                                ret.Add (ParseSingle (ref start, end));
-                               SkipSpaces (ref start);
                                if (bak == start)
                                        throw new Exception ("Parser failed to progress token position: " + source);
                        }
                        return ret;
                }
                
-               static readonly char [] token_starters = "$@%(),".ToCharArray ();
+               static readonly char [] token_starters = "$@%(),'\"".ToCharArray ();
                
                Expression ParseSingle (ref int start, int end)
                {
@@ -169,7 +168,7 @@ namespace Microsoft.Build.Internal.Expressions
                {
                        int n = 0;
                        for (int i = start; i < end; i++) {
-                               if (i < end + 1 && source [i] == '\\' && source [i + 1] == quote)
+                               if (i < end + 1 && source [i] == '\\' && (source [i + 1] == quote || source [i + 1] == '\\'))
                                        n += 2;
                                else if (source [i] == quote) {
                                        if (n-- == 0)