Merge pull request #861 from RobertZenz/patch-1
[mono.git] / mcs / class / System.Net.Http / System.Net.Http.Headers / Lexer.cs
index 51950a7a0abedcf152b10ad7a6f85e4b134946c5..f87d4f741bfdf951c13e00614d31dda66a320a49 100644 (file)
@@ -46,6 +46,8 @@ namespace System.Net.Http.Headers
                        OpenParens,
                }
 
+               public static readonly Token Empty = new Token (Type.Token, 0, 0);
+
                readonly Type type;
 
                public Token (Type type, int startPosition, int endPosition)
@@ -201,17 +203,26 @@ namespace System.Net.Http.Headers
 
                public bool ScanCommentOptional (out string value)
                {
-                       var t = Scan ();
-                       if (t != Token.Type.OpenParens) {
+                       Token t;
+                       if (ScanCommentOptional (out value, out t))
+                               return true;
+
+                       return t == Token.Type.End;
+               }
+
+               public bool ScanCommentOptional (out string value, out Token readToken)
+               {
+                       readToken = Scan ();
+                       if (readToken != Token.Type.OpenParens) {
                                value = null;
-                               return t == Token.Type.End;
+                               return false;
                        }
 
                        while (pos < s.Length) {
                                var ch = s[pos];
                                if (ch == ')') {
                                        ++pos;
-                                       var start = t.StartPosition;
+                                       var start = readToken.StartPosition;
                                        value = s.Substring (start, pos - start);
                                        return true;
                                }