6 namespace Tizen.NUI.StyleSheets
8 internal static class TextReaderExtensions
10 //ident [-]?{nmstart}{nmchar}*
11 public static string ReadIdent(this TextReader reader)
13 var sb = new StringBuilder();
15 bool hasLeadingDash = false;
17 while ((p = reader.Peek()) > 0) {
18 var c = unchecked((char)p);
19 if (first && !hasLeadingDash && c == '-') {
20 sb.Append((char)reader.Read());
21 hasLeadingDash = true;
22 } else if (first && c.IsNmStart()) {
23 sb.Append((char)reader.Read());
25 } else if (first) { //a nmstart is expected
26 throw new Exception();
27 } else if (c.IsNmChar())
28 sb.Append((char)reader.Read());
36 public static string ReadName(this TextReader reader)
38 var sb = new StringBuilder();
40 while ((p = reader.Peek()) > 0) {
41 var c = unchecked((char)p);
43 sb.Append((char)reader.Read());
50 public static string ReadUntil(this TextReader reader, params char[] limit)
52 var sb = new StringBuilder();
54 while ((p = reader.Peek()) > 0) {
55 var c = unchecked((char)p);
56 if (limit != null && limit.Contains(c))
65 public static void SkipWhiteSpaces(this TextReader reader)
68 while ((p = reader.Peek()) > 0) {
69 var c = unchecked((char)p);