/// <summary> /// Renders a single PrimitiveExpression to VHDL /// </summary> /// <returns>The VHDL equivalent of the expression.</returns> /// <param name="e">The expression to render</param> private string RenderExpression(AST.PrimitiveExpression e) { var tvhdl = Parent.VHDLType(e); if (tvhdl == VHDLTypes.BOOL) { return(((bool)e.Value) ? "true" : "false"); } else if (tvhdl == VHDLTypes.SYSTEM_BOOL) { return(((bool)e.Value) ? "'1'" : "'0'"); } else if (e.SourceResultType.Resolve().IsEnum) { return(Naming.ToValidName(e.SourceResultType.FullName + "_" + e.Value.ToString())); } else { return(VHDLTypeConversion.GetPrimitiveLiteral(e, tvhdl)); } }
/// <summary> /// Renders a single PrimitiveExpression to VHDL /// </summary> /// <returns>The VHDL equivalent of the expression.</returns> /// <param name="e">The expression to render</param> private string RenderExpression(AST.PrimitiveExpression e) { if (e.SourceResultType.IsSameTypeReference(typeof(bool))) { return(((bool)e.Value) ? "true" : "false"); } else if (e.SourceResultType.Resolve().IsEnum) { return(Naming.ToValidName(e.SourceResultType.FullName + "." + e.Value.ToString())); } else if (e.SourceResultType.IsSameTypeReference(typeof(long))) { var lv = (long)Convert.ChangeType(e.Value, typeof(long)); if (lv > int.MaxValue || lv < int.MinValue) { return(lv + "ll"); } else { return(lv.ToString()); } } else if (e.SourceResultType.IsSameTypeReference(typeof(ulong))) { var lv = (ulong)Convert.ChangeType(e.Value, typeof(ulong)); if (lv > int.MaxValue) { return(lv + "ull"); } else { return(lv.ToString()); } } else { return(e.Value.ToString()); } }