Merge pull request #3066 from alexanderkyte/pedump_sgen
[mono.git] / mcs / mcs / cs-tokenizer.cs
index 02f6f3df77494ae11eec7fda3dd1b388fd94fc9b..cd7ce1ac68fe34b998cd241d6f2d6783873866ea 100644 (file)
@@ -1095,6 +1095,7 @@ namespace Mono.CSharp
                                                case Token.DECIMAL:
                                                case Token.BOOL:
                                                case Token.STRING:
+                                               case Token.SBYTE:
                                                        return Token.OPEN_PARENS_CAST;
                                                }
                                        }
@@ -2522,7 +2523,6 @@ namespace Mono.CSharp
 
                int TokenizePragmaWarningIdentifier (ref int c, ref bool identifier)
                {
-
                        if ((c >= '0' && c <= '9') || is_identifier_start_character (c)) {
                                int number;
 
@@ -2587,6 +2587,9 @@ namespace Mono.CSharp
                                while (c == ' ' || c == '\t')
                                        c = get_char ();
 
+                               if (c == '\n' || c == UnicodeLS || c == UnicodePS)
+                                       advance_line ();
+
                                return number;
                        }
 
@@ -4057,6 +4060,9 @@ namespace Mono.CSharp
                                        --braces;
                                        break;
                                case '\\':
+                                       if (parsing_string_interpolation_quoted != null && parsing_string_interpolation_quoted.Peek ())
+                                               break;
+
                                        ++col;
                                        int surrogate;
                                        ch = escape (ch, out surrogate);
@@ -4101,8 +4107,6 @@ namespace Mono.CSharp
                private void handle_one_line_xml_comment ()
                {
                        int c;
-                       while ((c = peek_char ()) == ' ')
-                               get_char (); // skip heading whitespaces.
                        while ((c = peek_char ()) != -1 && c != '\n' && c != '\r') {
                                xml_comment_buffer.Append ((char) get_char ());
                        }