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)
19 var c = unchecked((char)p);
20 if (first && !hasLeadingDash && c == '-')
22 sb.Append((char)reader.Read());
23 hasLeadingDash = true;
25 else if (first && c.IsNmStart())
27 sb.Append((char)reader.Read());
31 { //a nmstart is expected
32 throw new Exception();
34 else if (c.IsNmChar())
35 sb.Append((char)reader.Read());
43 public static string ReadName(this TextReader reader)
45 var sb = new StringBuilder();
47 while ((p = reader.Peek()) > 0)
49 var c = unchecked((char)p);
51 sb.Append((char)reader.Read());
58 public static string ReadUntil(this TextReader reader, params char[] limit)
60 var sb = new StringBuilder();
62 while ((p = reader.Peek()) > 0)
64 var c = unchecked((char)p);
65 if (limit != null && limit.Contains(c))
74 public static void SkipWhiteSpaces(this TextReader reader)
77 while ((p = reader.Peek()) > 0)
79 var c = unchecked((char)p);