示例#1
0
        internal override CodeBlock WriteDebugCode(IMethodSymbolGenerator symbolGenerator)
        {
            var begin = symbolGenerator.GetCurrentPosition();

            symbolGenerator
            .Write("{")
            .EnterScope();

            for (int index = 0; index < _expressions.Length; index++)
            {
                if (index + 1 < _expressions.Length)
                {
                    symbolGenerator.Write(_expressions[index]).WriteStatementEnd("");
                }
                else
                {
                    symbolGenerator.Write("return ").Write(_expressions[index]).Write(";");
                }
            }

            var end = symbolGenerator
                      .LeaveScope()
                      .Write("}")
                      .GetCurrentPosition();

            return(begin.BlockTo(end));
        }