Ejemplo n.º 1
0
        public string ParseInstruction()
        {
            if (RetValue.IsValue() && RetValue.BaseType.IsPrimitiveType() &&
                RetValue.BaseType.CheckedCast <LPrimitiveType>().Type == LPrimitiveTypes.@void)
            {
                return($"\t{LKeywords.Ret} {LKeywords.Void}");
            }

            StringBuilder sb = new StringBuilder("\t");

            sb.Append(LKeywords.Ret).Append(" ");
            sb.Append(RetValue.ParseType()).Append(" ").Append(LRefHelper.GetValueOrIdentifierOf(RetValue));
            return(sb.ToString());
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Returns identifier of reference.
 /// </summary>
 /// <param name="reference"></param>
 /// <returns>identifier</returns>
 public static string GetIdentifierOf(LBaseRef reference)
 {
     if (reference.IsValue())
     {
         LValueRef value = (LValueRef)reference;
         return(value.Identifier !);
     }
     else if (reference.IsPointer())
     {
         LPointerRef pointer = (LPointerRef)reference;
         return(pointer.Identifier);
     }
     else if (reference.IsArray())
     {
         LArrayRef array = (LArrayRef)reference;
         return(array.Identifier);
     }
     else if (reference.IsVector())
     {
         LVectorRef vector = (LVectorRef)reference;
         return(vector.Identifier !);
     }
     throw new Exception("unknown reference.");
 }