Whee.WordBuilder.ProjectV2.ProjectSerializer.ReadRepeatingToken C# (CSharp) Метод

ReadRepeatingToken() публичный Метод

public ReadRepeatingToken ( IProjectNode node, int &repetitions, string &data ) : Token
node IProjectNode
repetitions int
data string
Результат Token
        public Token ReadRepeatingToken(IProjectNode node, out int repetitions, out string data)
        {
            m_warningsToNode = node;
            CheckForComments(node);
            StringBuilder sb = new StringBuilder();
            StringBuilder datasb = new StringBuilder();
            int start = m_Offset;
            int len = ReadNumeric(sb);

            if (len > 0)
            {
                int.TryParse(sb.ToString(), out repetitions);

                len = ReadSquaredBlock(sb, datasb);

                if (len > 0)
                {
                    data = datasb.ToString();

                    return CreateToken(node, TokenType.Repeater, sb.ToString(), start, sb.Length);
                }
                else
                {
                    m_Offset = start;
                }
            }

            repetitions = 0;
            data = "";
            return null;
        }

Usage Example

Пример #1
0
        public void TestRepeatingToken()
        {
            Mockery mockery = new Mockery();
            IProjectNode pn = mockery.NewMock<IProjectNode>();
            ProjectSerializer ps = new ProjectSerializer("4[a] 15[b c] 6[", null, null);

            int reps;
            string data;
            Token four = ps.ReadRepeatingToken(pn, out reps, out data);

            Assert.IsNotNull(four);
            Assert.AreEqual(4, reps);
            Assert.AreEqual("a", data);

            Token five = ps.ReadRepeatingToken(pn, out reps, out data);
            Assert.IsNotNull(five);
            Assert.AreEqual(15, reps);
            Assert.AreEqual("b c", data);

            Token sixPartial = ps.ReadRepeatingToken(pn, out reps, out data);
            Assert.IsNull(sixPartial);
        }