updating to the latest module.
[mono.git] / mcs / class / Commons.Xml.Relaxng / Commons.Xml.Relaxng.Rnc / RncTokenizer.cs
old mode 100644 (file)
new mode 100755 (executable)
index 0d79f5f..747364a
@@ -262,12 +262,7 @@ namespace Commons.Xml.Relaxng.Rnc
                                Array.Copy (nameBuffer, arr, index);\r
                                nameBuffer = arr;\r
                        }\r
-                       if (c > 0x10000) {\r
-                               AppendNameChar ((c - 0x10000) / 0x400 + 0xD800, ref index);\r
-                               AppendNameChar ((c - 0x10000) % 0x400 + 0xDC00, ref index);\r
-                       }\r
-                       else\r
-                               nameBuffer [index++] = (char) c;\r
+                       nameBuffer [index++] = (char) c;\r
                }\r
 \r
                private string ReadTripleQuoted (char quoteChar)\r
@@ -400,7 +395,7 @@ namespace Commons.Xml.Relaxng.Rnc
                                return Token.Asterisk;\r
                        case '\\':\r
                                if (backslashed)\r
-                                       return Token.ERROR;\r
+                                       return Token.BackSlash;\r
                                return ParseToken (true);\r
                        case '+':\r
                                return Token.Plus;\r
@@ -414,9 +409,11 @@ namespace Commons.Xml.Relaxng.Rnc
                                peekChar = '>';\r
                                goto default;\r
                        case '#':\r
-//                             tokenValue = ReadLine ();\r
+                               // NOTE: This interpretation is expanded against the spec\r
+//                             if (ReadChar () != '#')\r
+//                                     throw new RelaxngException ("Invalid character after '#'.");\r
+                               tokenValue = ReadLine ();\r
 //                             return Token.Documentation;\r
-                               ReadLine ();\r
                                return ParseToken (false);\r
                        case '\'':\r
                        case '\"':\r
@@ -430,9 +427,6 @@ namespace Commons.Xml.Relaxng.Rnc
                                        } // else '' or ""\r
                                        name = String.Empty;\r
                                }\r
-                               int invidx = XmlChar.IndexOfInvalid (name, true) ;\r
-                               if (invidx >= 0)\r
-                                       throw new RelaxngException (String.Format ("Invalid XML character in compact syntax literal segment at {0:X}", (int) name [invidx]));\r
                                tokenValue = name;\r
                                return Token.LiteralSegment;\r
                        default:\r
@@ -453,7 +447,7 @@ namespace Commons.Xml.Relaxng.Rnc
                                }\r
                                tokenValue = name;\r
                                if (backslashed)\r
-                                       return Token.QuotedIdentifier;\r
+                                       return Token.NCName;\r
                                switch (name) {\r
                                case "attribute":\r
                                        isElement = false;\r