Exemplo n.º 1
0
        /// <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));
            }
        }
Exemplo n.º 2
0
 /// <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());
     }
 }