Foxoft.Ci.CiParser.ParseNativeBlock C# (CSharp) Method

ParseNativeBlock() private method

private ParseNativeBlock ( ) : CiNativeBlock
return CiNativeBlock
        CiNativeBlock ParseNativeBlock()
        {
            StringBuilder sb = new StringBuilder();
            this.CopyTo = sb;
            try {
            Expect(CiToken.LeftBrace);
            int level = 1;
            for (;;) {
                if (See(CiToken.EndOfFile))
                    throw new ParseException("Native block not terminated");
                if (See(CiToken.LeftBrace))
                    level++;
                else if (See(CiToken.RightBrace))
                    if (--level == 0)
                        break;
                NextToken();
            }
            }
            finally {
            this.CopyTo = null;
            }
            NextToken();
            Trace.Assert(sb[sb.Length - 1] == '}');
            sb.Length--;
            return new CiNativeBlock { Content = sb.ToString() };
        }