Esempio n. 1
0
        public override void VisitOperatorBlock(OperatorBlockSyntax node)
        {
            var statementNode = node.ChildNodes().OfType <OperatorStatementSyntax>().FirstOrDefault();
            var defineName    = statementNode.ChildTokens().LastOrDefault().ToString();

            var methodArguments = new List <MethodArgument>();

            if (statementNode.ChildNodes().OfType <ParameterListSyntax>().FirstOrDefault().ChildNodes().Any())
            {
                var listNode = statementNode.ChildNodes().OfType <ParameterListSyntax>().FirstOrDefault();
                methodArguments = GetMethodArguments(listNode);
            }

            var asNode     = statementNode.ChildNodes().FirstOrDefault(x => x is SimpleAsClauseSyntax);
            var returnType = asNode.ChildNodes().FirstOrDefault().ToString();

            var startLength     = node.Span.Start;
            var endLength       = node.Span.End;
            var parentNamespace = GetNamespace(DefineKinds.Operator, startLength, endLength);

            UserDefinitions.Add(new UserDefinition
            {
                DefineKinds     = DefineKinds.Operator,
                Namespace       = parentNamespace,
                DefineName      = defineName,
                DefineFullName  = $"{parentNamespace}.{defineName}",
                MethodArguments = methodArguments,
                ReturnType      = ConvertCSharpType(returnType),
                SourceFile      = SourceFile,
                StartLength     = startLength,
                EndLength       = endLength,
            });

            base.VisitOperatorBlock(node);
        }
 public override void VisitOperatorBlock(OperatorBlockSyntax node)
 {
     AddBlockData(node);
     base.VisitOperatorBlock(node);
 }
Esempio n. 3
0
 public override void VisitOperatorBlock(OperatorBlockSyntax node)
 {
     LogicalLineCount++;
     base.VisitOperatorBlock(node);
 }