public override AstVisitAction VisitUnaryExpression(UnaryExpressionAst unaryExpressionAst) { var childVariableExpressionAst = unaryExpressionAst.Child as VariableExpressionAst; var childVariable = childVariableExpressionAst == null ? null : GetVariable(childVariableExpressionAst); var childVariableValue = childVariable == null ? null : childVariable.Value; switch (unaryExpressionAst.TokenKind) { case TokenKind.PostfixPlusPlus: if (childVariable == null) { throw new NotImplementedException(unaryExpressionAst.ToString()); } if (childVariableValue is PSObject) { if (this._writeSideEffectsToPipeline) { this._pipelineCommandRuntime.WriteObject(childVariable.Value); } childVariable.Value = PSObject.AsPSObject(((int)((PSObject)childVariableValue).BaseObject) + 1); } else { throw new NotImplementedException(childVariableValue.ToString()); } break; case TokenKind.PlusPlus: if (childVariable == null) { throw new NotImplementedException(unaryExpressionAst.ToString()); } if (childVariableValue is PSObject) { childVariable.Value = PSObject.AsPSObject(((int)((PSObject)childVariableValue).BaseObject) + 1); if (this._writeSideEffectsToPipeline) { this._pipelineCommandRuntime.WriteObject(childVariable.Value); } } else { throw new NotImplementedException(childVariableValue.ToString()); } break; default: throw new NotImplementedException(unaryExpressionAst.ToString()); } return(AstVisitAction.SkipChildren); }
public override AstVisitAction VisitUnaryExpression(UnaryExpressionAst unaryExpressionAst) { Console.WriteLine("Visited an UnaryExpressionAst."); Console.WriteLine(" " + unaryExpressionAst.ToString().Replace(Environment.NewLine, Environment.NewLine + " ")); return(AstVisitAction.Continue); }