Esempio n. 1
0
        private IExpression HandleNewCallExpressionNode(NewCallExpressionNode node)
        {
            var methodCallData = new MethodCallExpressionNodeData
            {
                Name = "ctor"
            };

            methodCallData.Parameters.AddRange(node.Parameters);

            return(CreateStaticMethodCallExpression(node.Type, methodCallData));
        }
        public override object VisitNewCallExpression([NotNull] DoshikParser.NewCallExpressionContext context)
        {
            SetWholeExpression(context);
            VisitChildren(context);
            _compilationContext.SetParsingAntlrContext(context);

            var node = new NewCallExpressionNode(context);

            var newCallCtx = context.newCall();

            var foundType = GetTypeNameVisitor.Apply(_compilationContext, newCallCtx.typeType());

            foundType.ThrowIfNotFound(_compilationContext);
            node.Type = foundType.DataType;

            node.Parameters.AddRange(GetMethodCallParameters(newCallCtx.methodCallParams()));

            Sequence.Sequence.Add(node);

            return(null);
        }