public virtual ExpressionAst VisitIndexExpression(IndexExpressionAst indexExpressionAst) { return(new IndexExpressionAst( indexExpressionAst.Extent, indexExpressionAst.Target.Rewrite(this), indexExpressionAst.Index.Rewrite(this))); }
public object VisitIndexExpression(IndexExpressionAst indexExpressionAst) { var newTargetExpression = VisitElement(indexExpressionAst.Target); var newIndexExpression = VisitElement(indexExpressionAst.Index); return(new IndexExpressionAst(indexExpressionAst.Extent, newTargetExpression, newIndexExpression)); }
public override AstVisitAction VisitIndexExpression(IndexExpressionAst indexExpressionAst) { var targetValue = EvaluateAst(indexExpressionAst.Target); int index = (int)EvaluateAst(indexExpressionAst.Index); var stringTargetValue = targetValue as string; if (stringTargetValue != null) { var result = stringTargetValue[index]; this._pipelineCommandRuntime.WriteObject(result); } else if (targetValue is IList) { var result = (targetValue as IList)[index]; this._pipelineCommandRuntime.WriteObject(result); } else { throw new NotImplementedException(indexExpressionAst.ToString() + " " + targetValue.GetType()); } return(AstVisitAction.SkipChildren); }
private ExpressionAst CreateClosureAccess(IScriptExtent extent, string name) { MaybeProcessMember(name, out int index, out string groupName); var closureExpr = new IndexExpressionAst( extent, new VariableExpressionAst(extent, "args", false), new ConstantExpressionAst(extent, 0)); var groupExpr = new MemberExpressionAst( extent, closureExpr, new StringConstantExpressionAst(extent, groupName, StringConstantType.BareWord), @static: false); var elementAccess = new IndexExpressionAst( extent, groupExpr, new ConstantExpressionAst(extent, index)); if (groupName != nameof(Closure.Inherits)) { return(elementAccess); } return(new MemberExpressionAst( extent, elementAccess, new StringConstantExpressionAst(extent, nameof(PSVariable.Value), StringConstantType.BareWord), @static: false)); }
public object VisitIndexExpression(IndexExpressionAst indexExpressionAst) { var target = VisitAst(indexExpressionAst.Target); var index = VisitAst(indexExpressionAst.Index); return(new IndexExpressionAst(indexExpressionAst.Extent, target, index)); }
public override object VisitIndexExpression(IndexExpressionAst indexExpressionAst) { VisitElement(indexExpressionAst.Target); script_.Write("["); VisitElement(indexExpressionAst.Index); script_.Write("]"); return(indexExpressionAst); }
public override AstVisitAction VisitIndexExpression(IndexExpressionAst indexExpressionAst) { var target = VisitSyntaxNode(indexExpressionAst.Target); var index = VisitSyntaxNode(indexExpressionAst.Index); _currentNode = new ElementAccess(target, new BracketedArgumentList(new ArgumentList(index))); return(AstVisitAction.SkipChildren); }
public static IndexExpressionAst Update( this IndexExpressionAst ast, ExpressionAst target = null, ExpressionAst index = null) { return(new IndexExpressionAst( ast.Extent, target?.Clone() ?? ast.Target.Clone(), index?.Clone() ?? ast.Index.Clone())); }
public object VisitIndexExpression(IndexExpressionAst indexExpressionAst) { // Get the value of the index and value and call the compiler var index = indexExpressionAst.Index.Accept(this); var target = indexExpressionAst.Target.Accept(this); if (index == null || target == null) { throw new ArgumentNullException("indexExpressionAst"); } return(GetIndexedValueFromTarget(target, index)); }
public object VisitIndexExpression(IndexExpressionAst indexExpressionAst) { throw new NotImplementedException(); }
public object VisitIndexExpression(IndexExpressionAst indexExpressionAst) => null;
/// <summary/> public virtual AstVisitAction VisitIndexExpression(IndexExpressionAst indexExpressionAst) => DefaultVisit(indexExpressionAst);
public override AstVisitAction VisitIndexExpression(IndexExpressionAst functionDefinitionAst) { // We don't want to discover any variables in index expressions (`$something[0]`) return(AstVisitAction.SkipChildren); }
internal SettableIndexExpression(IndexExpressionAst expressionAst, ExecutionVisitor currentExecution) : base(currentExecution) { _expressionAst = expressionAst; }
public override ExpressionAst VisitIndexExpression(IndexExpressionAst indexExpressionAst) => VisitExpression(base.VisitIndexExpression(indexExpressionAst));
public override AstVisitAction VisitIndexExpression(IndexExpressionAst ast) { return(DoNextAction(ast)); }
public override AstVisitAction VisitIndexExpression(IndexExpressionAst indexExpressionAst) { return(Visit(indexExpressionAst)); }
object ICustomAstVisitor.VisitIndexExpression(IndexExpressionAst indexExpressionAst) => VisitIndexExpression(indexExpressionAst);
public virtual TResult VisitIndexExpression(IndexExpressionAst indexExpressionAst) => default(TResult);
public object VisitIndexExpression(IndexExpressionAst indexExpressionAst) { Console.WriteLine("Visited an IndexExpressionAst."); return(indexExpressionAst); }
public object VisitIndexExpression(IndexExpressionAst indexExpressionAst) { return((bool)indexExpressionAst.Index.Accept(this) && (bool)indexExpressionAst.Target.Accept(this)); }
public object VisitIndexExpression(IndexExpressionAst indexExpressionAst) { throw new UnexpectedElementException(); }
object ICustomAstVisitor.VisitIndexExpression(IndexExpressionAst indexExpressionAst) => ProcessRewriter(VisitIndexExpression, indexExpressionAst);
public override AstVisitAction VisitIndexExpression(IndexExpressionAst indexExpressionAst) { Console.WriteLine("Visited an IndexExpressionAst."); Console.WriteLine(" " + indexExpressionAst.ToString().Replace(Environment.NewLine, Environment.NewLine + " ")); return(AstVisitAction.Continue); }
public override AstVisitAction VisitIndexExpression(IndexExpressionAst ast) { return(AstVisitAction.Continue); }
public override AstVisitAction VisitIndexExpression(IndexExpressionAst indexExpressionAst) { AstExplainer(indexExpressionAst); return(base.VisitIndexExpression(indexExpressionAst)); }
public virtual object VisitIndexExpression(IndexExpressionAst indexExpressionAst) { VisitElement(indexExpressionAst.Target); VisitElement(indexExpressionAst.Index); return(indexExpressionAst); }
public object VisitIndexExpression(IndexExpressionAst indexExpressionAst) { return(!((bool)indexExpressionAst.Target.Accept(this)) ? ((object)0) : ((object)((bool)indexExpressionAst.Index.Accept(this)))); }
public override AstVisitAction VisitIndexExpression(IndexExpressionAst indexExpressionAst) => VisitAst(indexExpressionAst);