public ArgumentExpression(InOutModifierLiteral argumentModifier, Expression argument, TextSpan textSpan) : base(textSpan) { Modifier = argumentModifier; Argument = argument; }
public ParameterDeclaration(InOutModifierLiteral modifier, TypeToken type, IdToken name, TextSpan textSpan = default) : base(textSpan) { Modifier = modifier; Type = type; Name = name; }
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); }
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); }
public virtual T Visit(InOutModifierLiteral parameterModifierLiteral) { return(VisitChildren(parameterModifierLiteral)); }