Beispiel #1
0
 public ArgumentExpression(InOutModifierLiteral argumentModifier, Expression argument,
                           TextSpan textSpan)
     : base(textSpan)
 {
     Modifier = argumentModifier;
     Argument = argument;
 }
Beispiel #2
0
 public ParameterDeclaration(InOutModifierLiteral modifier, TypeToken type,
                             IdToken name, TextSpan textSpan = default)
     : base(textSpan)
 {
     Modifier = modifier;
     Type     = type;
     Name     = name;
 }
Beispiel #3
0
        public override Ust VisitArgument(ArgumentSyntax node)
        {
            var result = (Expression)VisitAndReturnNullIfError(node.Expression);

            if (!node.RefKindKeyword.IsKind(SyntaxKind.None))
            {
                InOutModifierLiteral modifierLiteral = new InOutModifierLiteral(
                    node.RefKindKeyword.IsKind(SyntaxKind.OutKeyword) ? InOutModifier.Out : InOutModifier.InOut,
                    node.RefKindKeyword.GetTextSpan());
                result = new ArgumentExpression(modifierLiteral, result, node.GetTextSpan());
            }
            return(result);
        }
Beispiel #4
0
        public override Ust VisitParameter(ParameterSyntax node)
        {
            SyntaxToken modifier = node.Modifiers.FirstOrDefault(m =>
                                                                 m.IsKind(SyntaxKind.OutKeyword) || m.IsKind(SyntaxKind.RefKeyword));
            InOutModifierLiteral inOut = null;

            if (!modifier.IsKind(SyntaxKind.None))
            {
                inOut = new InOutModifierLiteral(
                    modifier.IsKind(SyntaxKind.OutKeyword) ? InOutModifier.Out : InOutModifier.InOut,
                    modifier.GetTextSpan());
            }

            TypeToken type   = ConvertType(base.Visit(node.Type));
            var       id     = ConvertId(node.Identifier);
            var       result = new ParameterDeclaration(inOut, type, id, node.GetTextSpan());

            return(result);
        }
Beispiel #5
0
 public virtual T Visit(InOutModifierLiteral parameterModifierLiteral)
 {
     return(VisitChildren(parameterModifierLiteral));
 }