コード例 #1
0
        public string GenerateStackDump(ExpressionData expressionsData)
        {
            var codeGenerator = new CodeGenerator(_variableDeclarationType);

            var(generatedSyntax, expressionTypeCode) = _initializationManager.GenerateForMainObject(expressionsData);

            if (_typeAnalyzer.IsPrimitiveType(expressionTypeCode))
            {
                codeGenerator.AddOnePrimitiveExpression(expressionsData.Name, expressionsData.Type, generatedSyntax);
                return(codeGenerator.GetStringDump());
            }

            if (expressionTypeCode == TypeCode.Array)
            {
                var memberSyntax = _arrayCodeGenerator.Generate(expressionsData.Name, expressionsData.Type, generatedSyntax);
                return(codeGenerator.GetStringDump(memberSyntax));
            }

            codeGenerator.AddOneExpression(expressionsData.Name, expressionsData.Type, generatedSyntax);

            return(codeGenerator.GetStringDump());
        }