public UniWebViewGradleConfig(string filePath) { string file = File.ReadAllText(filePath); TextReader reader = new StringReader(file); m_filePath = filePath; m_root = new UniWebViewGradleNode("root"); m_curNode = m_root; StringBuilder str = new StringBuilder(); while (reader.Peek() > 0) { char c = (char)reader.Read(); switch (c) { case '/': if (reader.Peek() == '/') { reader.Read(); string comment = reader.ReadLine(); m_curNode.AppendChildNode(new UniWebViewGradleCommentNode(comment, m_curNode)); } else { str.Append('/'); } break; case '\n': { var strf = FormatStr(str); if (!string.IsNullOrEmpty(strf)) { m_curNode.AppendChildNode(new UniWebViewGradleContentNode(strf, m_curNode)); } } str = new StringBuilder(); break; case '\r': break; case '\t': break; case '{': { var n = FormatStr(str); if (!string.IsNullOrEmpty(n)) { UniWebViewGradleNode node = new UniWebViewGradleNode(n, m_curNode); m_curNode.AppendChildNode(node); m_curNode = node; } } str = new StringBuilder(); break; case '}': { var strf = FormatStr(str); if (!string.IsNullOrEmpty(strf)) { m_curNode.AppendChildNode(new UniWebViewGradleContentNode(strf, m_curNode)); } m_curNode = m_curNode.PARENT; } str = new StringBuilder(); break; default: str.Append(c); break; } } //Debug.Log("Gradle parse done!"); }
public UniWebViewGradleConfig(string filePath) { string file = File.ReadAllText(filePath); TextReader reader = new StringReader(file); m_filePath = filePath; m_root = new UniWebViewGradleNode("root"); m_curNode = m_root; StringBuilder str = new StringBuilder(); bool inDoubleQuote = false; bool inSingleQuote = false; while (reader.Peek() > 0) { char c = (char)reader.Read(); switch (c) { // case '/': // if (reader.Peek() == '/') // { // reader.Read(); // string comment = reader.ReadLine(); // Debug.Log("Comment line: " + comment); // m_curNode.AppendChildNode(new UniWebViewGradleCommentNode(comment, m_curNode)); // } // else // { // str.Append('/'); // } // break; case '\n': case '\r': { var strf = FormatStr(str); if (!string.IsNullOrEmpty(strf)) { m_curNode.AppendChildNode(new UniWebViewGradleContentNode(strf, m_curNode)); } } str = new StringBuilder(); break; case '\t': { var strf = FormatStr(str); if (!string.IsNullOrEmpty(strf)) { str.Append(" "); } break; } case '{': { if (inDoubleQuote || inSingleQuote) { str.Append(c); break; } var n = FormatStr(str); if (!string.IsNullOrEmpty(n)) { UniWebViewGradleNode node = new UniWebViewGradleNode(n, m_curNode); m_curNode.AppendChildNode(node); m_curNode = node; } } str = new StringBuilder(); break; case '}': { if (inDoubleQuote || inSingleQuote) { str.Append(c); break; } var strf = FormatStr(str); if (!string.IsNullOrEmpty(strf)) { m_curNode.AppendChildNode(new UniWebViewGradleContentNode(strf, m_curNode)); } m_curNode = m_curNode.PARENT; } str = new StringBuilder(); break; case '\"': inDoubleQuote = !inDoubleQuote; str.Append(c); break; case '\'': inSingleQuote = !inSingleQuote; str.Append(c); break; default: str.Append(c); break; } } //Debug.Log("Gradle parse done!"); }