public virtual ExpressionAst VisitConvertExpression(ConvertExpressionAst convertExpressionAst) { return(new ConvertExpressionAst( convertExpressionAst.Extent, convertExpressionAst.Type.Rewrite(this), convertExpressionAst.Child.Rewrite(this))); }
public object VisitConvertExpression(ConvertExpressionAst convertExpressionAst) { var newChild = VisitElement(convertExpressionAst.Child); var newTypeConstraint = VisitElement(convertExpressionAst.Type); return(new ConvertExpressionAst(convertExpressionAst.Extent, newTypeConstraint, newChild)); }
public object VisitConvertExpression(ConvertExpressionAst convertExpressionAst) { var typeConstraint = VisitAst(convertExpressionAst.Type); var child = VisitAst(convertExpressionAst.Child); return(new ConvertExpressionAst(convertExpressionAst.Extent, typeConstraint, child)); }
public override AstVisitAction VisitConvertExpression(ConvertExpressionAst convertExpressionAst) { var expression = VisitSyntaxNode(convertExpressionAst.Child); var type = convertExpressionAst.Type.TypeName.Name; _currentNode = new Cast(type, expression); return(AstVisitAction.SkipChildren); }
public void Cast() { ConvertExpressionAst convertExpressionAst = ParseStatement("[Text.RegularExpressions.RegexOptions] 'IgnoreCase'") .PipelineElements[0] .Expression; Assert.AreEqual("Text.RegularExpressions.RegexOptions", convertExpressionAst.Type.TypeName.Name); Assert.AreEqual("IgnoreCase", ((StringConstantExpressionAst)convertExpressionAst.Child).Value); }
public static ConvertExpressionAst Update( this ConvertExpressionAst ast, TypeConstraintAst typeConstraint = null, ExpressionAst child = null) { return(new ConvertExpressionAst( ast.Extent, typeConstraint?.Clone() ?? ast.Type.Clone(), child?.Clone() ?? ast.Child.Clone())); }
public override AstVisitAction VisitConvertExpression(ConvertExpressionAst convertExpressionAst) { explanations.Add( new Explanation() { Description = $"Converts or restricts the expression to the type '{convertExpressionAst.Type.TypeName.Name}'.", CommandName = "Convert expression" }.AddDefaults(convertExpressionAst, explanations)); return(base.VisitConvertExpression(convertExpressionAst)); }
public object VisitConvertExpression(ConvertExpressionAst convertExpressionAst) { // at this point, we know we're safe because we checked both the type and the child, // so now we can just call the compiler and indicate that it's trusted (at this point) if (s_context != null) { return(Compiler.GetExpressionValue(convertExpressionAst, true, s_context, null)); } else { throw PSTraceSource.NewArgumentException("ast"); } }
public override AstVisitAction VisitConvertExpression(ConvertExpressionAst convertExpressionAst) { if (convertExpressionAst.Child is VariableExpressionAst variable) { _variables.Add( Tuple.Create( convertExpressionAst.Attribute.TypeName, variable)); return(AstVisitAction.SkipChildren); } return(AstVisitAction.StopVisit); }
public object VisitConvertExpression(ConvertExpressionAst convertExpressionAst) { if (_currentMethod == null) { var typeName = convertExpressionAst.Type.TypeName.FullName; var refExp = Visit(convertExpressionAst.Child) as CodeVariableReferenceExpression; if (refExp != null) { _currentClass.Members.Add(new CodeMemberField(typeName, refExp.VariableName)); } } return(null); }
public override AstVisitAction VisitConvertExpression(ConvertExpressionAst convertExpressionAst) { Type type = convertExpressionAst.Type.TypeName.GetReflectionType(); var value = EvaluateAst(convertExpressionAst.Child); if (type.IsEnum) { var result = Enum.Parse(type, (string)value); this._pipelineCommandRuntime.WriteObject(result); return(AstVisitAction.SkipChildren); } throw new NotImplementedException(); //VisitConvertExpression(convertExpressionAst); }
public object VisitConvertExpression(ConvertExpressionAst convertExpressionAst) { var type = convertExpressionAst.Type.TypeName.GetReflectionType(); if (type == null) { return(false); } if (!type.IsSafePrimitive()) { // Only do conversions to built-in types - other conversions might not // be safe to optimize. return(false); } _visitCount++; return((bool)convertExpressionAst.Child.Accept(this)); }
public override AstVisitAction VisitConvertExpression(ConvertExpressionAst ast) { return(AstVisitAction.Continue); }
public object VisitConvertExpression(ConvertExpressionAst convertExpressionAst) => null;
/// <summary/> public virtual AstVisitAction VisitConvertExpression(ConvertExpressionAst convertExpressionAst) => DefaultVisit(convertExpressionAst);
public virtual TResult VisitConvertExpression(ConvertExpressionAst convertExpressionAst) => default(TResult);
public override AstVisitAction VisitConvertExpression(ConvertExpressionAst convertExpressionAst) { return(Visit(convertExpressionAst)); }
object ICustomAstVisitor.VisitConvertExpression(ConvertExpressionAst convertExpressionAst) => VisitConvertExpression(convertExpressionAst);
public override object VisitConvertExpression(ConvertExpressionAst convertExpressionAst) { VisitElement(convertExpressionAst.Type); VisitElement(convertExpressionAst.Child); return(convertExpressionAst); }
public object VisitConvertExpression(ConvertExpressionAst convertExpressionAst) { Console.WriteLine("Visited an ConvertExpressionAst."); return(convertExpressionAst); }
object ICustomAstVisitor.VisitConvertExpression(ConvertExpressionAst convertExpressionAst) => ProcessRewriter(VisitConvertExpression, convertExpressionAst);
public object VisitConvertExpression(ConvertExpressionAst convertExpressionAst) { throw new UnexpectedElementException(); }
public override AstVisitAction VisitConvertExpression(ConvertExpressionAst convertExpressionAst) { Console.WriteLine("Visited an ConvertExpressionAst."); Console.WriteLine(" " + convertExpressionAst.ToString().Replace(Environment.NewLine, Environment.NewLine + " ")); return(AstVisitAction.Continue); }
public override AstVisitAction VisitConvertExpression(ConvertExpressionAst convertExpressionAst) { throw new NotImplementedException(); //VisitConvertExpression(convertExpressionAst); }
public override AstVisitAction VisitConvertExpression(ConvertExpressionAst ast) { return(DoNextAction(ast)); }
public override ExpressionAst VisitConvertExpression(ConvertExpressionAst convertExpressionAst) => VisitExpression(base.VisitConvertExpression(convertExpressionAst));
public object VisitConvertExpression(ConvertExpressionAst convertExpressionAst) { return((bool)convertExpressionAst.Child.Accept(this)); }
public override AstVisitAction VisitConvertExpression(ConvertExpressionAst convertExpressionAst) => VisitAst(convertExpressionAst);