Пример #1
0
        public override void VisitDefineTupleNode(DefineTupleNode node)
        {
            node.TupleValue.Visit(this);

            var tuple = TupleExpression();

            foreach (var item in node.Variables)
            {
                item.Type.Visit(this);

                var variableDesignation = SingleVariableDesignation(Identifier(item.Name.Text));
                variableDesignation = GetNodeWithAnnotation(variableDesignation, item.Name.Location)
                                      as SingleVariableDesignationSyntax;
                tuple = tuple.AddArguments(Argument(DeclarationExpression(
                                                        expressions.Pop() as TypeSyntax,
                                                        variableDesignation
                                                        )));
            }

            var kindAssigment = SyntaxKind.SimpleAssignmentExpression;
            var assignTuple   = AssignmentExpression(kindAssigment, tuple, expressions.Pop());

            assignTuple = GetNodeWithAnnotation(assignTuple, node.Location) as AssignmentExpressionSyntax;

            AddStatementToCurrentBlock(ExpressionStatement(assignTuple));
        }
Пример #2
0
 public virtual void VisitDefineTupleNode(DefineTupleNode node)
 {
 }