コード例 #1
0
ファイル: Vdf.cs プロジェクト: gro-ove/actools
        private static Vdf Get(VdfTokenizer tokenizer, bool child = false) {
            var section = new Vdf();
            while (!tokenizer.IsFinished) {
                switch (tokenizer.ReadNext()) {
                    case null:
                        if (child) throw new Exception("Unexpected end of file");
                        return section;
                    case VdfToken.End:
                        if (!child) throw new Exception("Unexpected end of section");
                        return section;
                    case VdfToken.Begin:
                        throw new Exception("Unexpected begin of section");
                }

                var key = tokenizer.Consume();
                switch (tokenizer.ReadNext()) {
                    case null:
                        throw new Exception("Unexpected end of file");
                    case VdfToken.End:
                        throw new Exception("Unexpected end of section");
                    case VdfToken.Begin:
                        section.Children[key] = Get(tokenizer, true);
                        break;
                    case VdfToken.String:
                        section.Values[key] = tokenizer.Consume();
                        break;
                }
            }

            return section;
        }
コード例 #2
0
ファイル: Vdf.cs プロジェクト: windygu/actools
        private static Vdf Get(VdfTokenizer tokenizer, bool child = false)
        {
            var section = new Vdf();

            while (!tokenizer.IsFinished)
            {
                switch (tokenizer.ReadNext())
                {
                case null:
                    if (child)
                    {
                        throw new Exception("Unexpected end of file");
                    }
                    return(section);

                case VdfToken.End:
                    if (!child)
                    {
                        throw new Exception("Unexpected end of section");
                    }
                    return(section);

                case VdfToken.Begin:
                    throw new Exception("Unexpected begin of section");
                }

                var key = tokenizer.Consume();
                switch (tokenizer.ReadNext())
                {
                case null:
                    throw new Exception("Unexpected end of file");

                case VdfToken.End:
                    throw new Exception("Unexpected end of section");

                case VdfToken.Begin:
                    section.Children[key] = Get(tokenizer, true);
                    break;

                case VdfToken.String:
                    section.Values[key] = tokenizer.Consume();
                    break;
                }
            }

            return(section);
        }