public static IfStatementAst As( this Ast source, AstType <IfStatementAst> targetType, PipelineBaseAst condition, params StatementAst[] statements) { return(new IfStatementAst( source.Extent, new[] { Tuple.Create(condition, source.As(StatementBlock, statements)) }, null)); }
public static CommandAst As( this Ast source, AstType <CommandAst> targetType, string commandName, TokenKind invocationOperator, params CommandElementAst[] elements) { var extent = GetExtentFromConstant(commandName, source.Extent); var newElements = new CommandElementAst[elements.Length + 1]; for (int i = 0; i < elements.Length; i++) { newElements[i + 1] = elements[i]; } newElements[0] = source.As(StringConstantExpression, commandName); return(new CommandAst( extent, newElements, invocationOperator, Enumerable.Empty <RedirectionAst>())); }