Exemple #1
0
        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);
        }
Exemple #2
0
 public override AstVisitAction VisitUnaryExpression(UnaryExpressionAst unaryExpressionAst)
 {
     Console.WriteLine("Visited an UnaryExpressionAst.");
     Console.WriteLine("    " + unaryExpressionAst.ToString().Replace(Environment.NewLine, Environment.NewLine + "    "));
     return(AstVisitAction.Continue);
 }