public virtual void VisitCastExpression <TTypeReference, TExpression>( ICastExpression <TTypeReference, TExpression> castExpression) where TTypeReference : ITypeReference where TExpression : IExpression { Visit(castExpression); }
/// <summary>Handles the specified expression.</summary> /// <param name="castExpression">As expression.</param> /// <param name="scopeParameters">The parameters.</param> /// <returns>Returns the string.</returns> public ExpressionDescriptor Handle(ICastExpression castExpression, Dictionary<string, string> scopeParameters) { var operand = castExpression.Op; if (operand == null) { return null; } var type = castExpression.TargetType; if (type == null) { return null; } var expressionDescriptor = ExpressionTemplateBuilder.Handle(operand, scopeParameters); if (expressionDescriptor == null) { return null; } var result = new ExpressionDescriptor { Template = string.Format("({0}){1}", type.GetText(), expressionDescriptor.Template) }; foreach (var variable in expressionDescriptor.TemplateVariables) { result.TemplateVariables[variable.Key] = variable.Value; } return result; }
public override void VisitCastExpression <TTypeReference, TExpression>( ICastExpression <TTypeReference, TExpression> castExpression) { Value = new Expression() { CastExpression = new CastExpressionFactory(castExpression).Value }; }
public override void VisitCastExpression <TTypeReference, TExpression>( ICastExpression <TTypeReference, TExpression> castExpression) { Steps.Add(new WriteStartParenthesis()); Steps.Add(new WriteChildNode <TTypeReference>(castExpression.Type)); Steps.Add(new WriteEndParenthesis()); Steps.Add(new WriteExpression <TExpression>(castExpression.Expression)); }
public static void VisitCastExpressionChildren<TTypeReference, TExpression>( ICastExpression<TTypeReference, TExpression> castExpression, IGenericExpressionVisitor visitor) where TTypeReference : ITypeReference where TExpression : IExpression { VisitIfNotNull(castExpression.Expression, visitor); }
public override IExpression Visit(ICastExpression entity, int context) { return(new CastExpression { Reference = (IVariableReference)entity.Reference.Accept(_refAnon, context), Operator = entity.Operator, TargetType = entity.TargetType.ToAnonymousName() }); }
public EnumeratorStatement(IStatementBlock sourceBlock) : base(sourceBlock) { enumMember = this.Statements.Locals.AddNew(this.Statements.Locals.GetUnusedName("__enumerator"), typeof(IEnumerator).GetTypeReference()); enumMember.AutoDeclare = false; currentMember = this.Statements.Locals.AddNew(this.Statements.Locals.GetUnusedName("__current"), typeof(void).GetTypeReference()); currentMember.AutoDeclare = true; currentMemberInit = new CastExpression(enumMember.GetReference().GetProperty("Current"), itemType); currentMember.InitializationExpression = currentMemberInit; }
public override bool Equals(object obj) { if (this == obj) { return(true); } ICastExpression expression = obj as ICastExpression; if (expression == null) { return(false); } return(this.Expression.Equals(expression.Expression) && this.TargetType.Equals(expression.TargetType)); }
private static void WriteCast(LanguageWriter w, ICastExpression exp) { TypeRef type = new TypeRef(exp.TargetType); bool paren = !type.IsFunctionPointer; if (paren) { w.Write("("); } type.WriteNameWithRef(w); if (paren) { w.Write(")"); } WriteExpression(w, exp.Expression, PREC_CAST > GetExpressionPrecedence(exp.Expression)); }
public override void TranslateExpression(ICastExpression castExpression) { this.Provider.GenerateCodeFromExpression(castExpression.GenerateCodeDom(this.Options), base.Target, this.Options.Options); }
public abstract void TranslateExpression(ICastExpression castExpression);
public int Visit(ICastExpression expr, int context) { throw new NotImplementedException(); }
public override void VisitCastExpression(ICastExpression value) { VisitExpression(value.Expression); }
public virtual void VisitCastExpression(ICastExpression value) { VisitType(value.TargetType); VisitExpression(value.Expression); }
private void WriteCastExpression(ICastExpression expression, IFormatter formatter) { //formatter.Write("("); this.WriteExpression(expression.Expression, formatter); //formatter.Write(" "); //formatter.WriteKeyword("as"); //formatter.Write(" "); //this.WriteType(expression.TargetType, formatter); //formatter.Write(")"); }
protected override IExpression ConvertCastExpr(ICastExpression ice) { return(CodeRecognizer.RemoveCast(base.ConvertCastExpr(ice))); }
public void Visit(ICastExpression expr, SSTPrintingContext c) { c.Text("(").Type(expr.TargetType).Text(")").Space(); expr.Reference.Accept(this, c); }
public virtual void VisitCastExpression(ICastExpression value) { this.VisitType(value.TargetType); this.VisitExpression(value.Expression); }
//=========================================================== // Expression 分岐 //=========================================================== public virtual void WriteExpression(IExpression expression) { if (expression == null) { return; } mwg.Reflector.CppCli.ExpressionWriter.WriteExpression(this, expression, false); #if FALSE #pragma warning disable 612 IMemberInitializerExpression expression3 = expression as IMemberInitializerExpression; if (expression3 != null) { this.WriteMemberInitializerExpression(expression3); return; } IAddressOutExpression expression27 = expression as IAddressOutExpression; if (expression27 != null) { this.WriteAddressOutExpression(expression27); return; } IAddressReferenceExpression expression26 = expression as IAddressReferenceExpression; if (expression26 != null) { this.WriteAddressReferenceExpression(expression26); return; } IDelegateCreateExpression iDelegateCreateExpression = expression as IDelegateCreateExpression; if (iDelegateCreateExpression != null) { this.WriteDelegateCreateExpression(iDelegateCreateExpression); return; } IMethodInvokeExpression iMethodInvokeExpression = expression as IMethodInvokeExpression; if (iMethodInvokeExpression != null) { this.WriteMethodInvokeExpression(iMethodInvokeExpression); return; } IVariableDeclarationExpression expression15 = expression as IVariableDeclarationExpression; if (expression15 != null) { this.WriteVariableDeclaration(expression15.Variable); return; } ITypeOfExpression iTypeOfExpression = expression as ITypeOfExpression; if (iTypeOfExpression != null) { this.WriteTypeOfExpression(iTypeOfExpression); return; } ISnippetExpression iSnippetExpression = expression as ISnippetExpression; if (iSnippetExpression != null) { this.WriteSnippetExpression(iSnippetExpression); return; } IUnaryExpression iUnaryExpression = expression as IUnaryExpression; if (iUnaryExpression != null) { this.WriteUnaryExpression(iUnaryExpression); return; } IObjectCreateExpression iObjectCreateExpression = expression as IObjectCreateExpression; if (iObjectCreateExpression != null) { this.WriteObjectCreateExpression(iObjectCreateExpression); return; } IVariableReferenceExpression iVariableReferenceExpression = expression as IVariableReferenceExpression; if (iVariableReferenceExpression != null) { this.WriteVariableReferenceExpression(iVariableReferenceExpression); return; } IThisReferenceExpression expression12 = expression as IThisReferenceExpression; if (expression12 != null) { this.WriteThisReferenceExpression(expression12); return; } ITryCastExpression iTryCastExpression = expression as ITryCastExpression; if (iTryCastExpression != null) { this.WriteTryCastExpression(iTryCastExpression); return; } IConditionExpression expression9 = expression as IConditionExpression; if (expression9 != null) { this.WriteConditionExpression(expression9); return; } IFieldReferenceExpression iFieldReferenceExpression = expression as IFieldReferenceExpression; if (iFieldReferenceExpression != null) { this.WriteFieldReferenceExpression(iFieldReferenceExpression); return; } IPropertyIndexerExpression iPropertyIndexerExpression = expression as IPropertyIndexerExpression; if (iPropertyIndexerExpression != null) { this.WritePropertyIndexerExpression(iPropertyIndexerExpression); return; } ITypeReferenceExpression iTypeReferenceExpression = expression as ITypeReferenceExpression; if (iTypeReferenceExpression != null) { this.WriteTypeReferenceExpression(iTypeReferenceExpression); return; } IMethodReferenceExpression iMethodReferenceExpression = expression as IMethodReferenceExpression; if (iMethodReferenceExpression != null) { this.WriteMethodReferenceExpression(iMethodReferenceExpression); return; } IPropertyReferenceExpression iPropertyReferenceExpression = expression as IPropertyReferenceExpression; if (iPropertyReferenceExpression != null) { this.WritePropertyReferenceExpression(iPropertyReferenceExpression); return; } ICastExpression expression5 = expression as ICastExpression; if (expression5 != null) { this.WriteCastExpression(expression5); return; } ICanCastExpression iCanCastExpression = expression as ICanCastExpression; if (iCanCastExpression != null) { this.WriteCanCastExpression(iCanCastExpression); return; } ICastExpression iCastExpression = expression as ICastExpression; if (iCastExpression != null) { this.WriteCastExpression(iCastExpression); return; } ILiteralExpression literalExpression = expression as ILiteralExpression; if (literalExpression != null) { this.WriteLiteralExpression(literalExpression); return; } IBinaryExpression iBinaryExpression = expression as IBinaryExpression; if (iBinaryExpression != null) { mwg.Reflector.CppCli.ExpressionWriter.WriteExpression(this, expression, true); //this.WriteBinaryExpression(iBinaryExpression); return; } IArrayIndexerExpression expression30 = expression as IArrayIndexerExpression; if (expression30 != null) { this.WriteArrayIndexerExpression(expression30); return; } IAddressDereferenceExpression expression29 = expression as IAddressDereferenceExpression; if (expression29 != null) { this.WriteAddressDereferenceExpression(expression29); return; } IAddressOfExpression expression28 = expression as IAddressOfExpression; if (expression28 != null) { this.WriteAddressOfExpression(expression28); return; } IArgumentListExpression expression25 = expression as IArgumentListExpression; if (expression25 != null) { this.WriteArgumentListExpression(expression25); return; } IBaseReferenceExpression iBaseReferenceExpression = expression as IBaseReferenceExpression; if (iBaseReferenceExpression != null) { this.WriteBaseReferenceExpression(iBaseReferenceExpression); return; } IArgumentReferenceExpression expression13 = expression as IArgumentReferenceExpression; if (expression13 != null) { this.WriteArgumentReferenceExpression(expression13); return; } IArrayCreateExpression expression10 = expression as IArrayCreateExpression; if (expression10 != null) { this.WriteArrayCreateExpression(expression10); return; } IAssignExpression iAssignExpression = expression as IAssignExpression; if (iAssignExpression != null) { this.WriteAssignExpression(iAssignExpression); return; } IBlockExpression expression2 = expression as IBlockExpression; if (expression2 != null) { this.WriteBlockExpression(expression2); return; } #pragma warning restore 612 this.Write(expression.ToString()); #endif }
public virtual void Visit(ICastExpression expr, TContext context) { expr.Reference.Accept(this, context); }
public virtual IExpression TransformCastExpression(ICastExpression value) { value.Expression = this.TransformExpression(value.Expression); return value; }