Esempio n. 1
0
    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!");
    }
Esempio n. 2
0
    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!");
    }