예제 #1
0
파일: RloLocal.cs 프로젝트: elasota/clarity
 public RloLocal(Compiler compiler, HighLocal highLocal, RloInstantiationParameters instParams, bool isArg)
 {
     switch (highLocal.TypeOfType)
     {
         case HighLocal.ETypeOfType.ByRef:
             {
                 RloValueType vt = new RloValueType(compiler, highLocal.Type, instParams);
                 vt = (RloValueType)compiler.InternRloType(vt);
                 RloRefType rt = new RloRefType(vt);
                 rt = (RloRefType)compiler.InternRloType(rt);
                 m_type = rt;
             }
             break;
         case HighLocal.ETypeOfType.TypedByRef:
             m_type = compiler.InternedRloTypedRefType;
             break;
         case HighLocal.ETypeOfType.Value:
             {
                 RloValueType vt = new RloValueType(compiler, highLocal.Type, instParams);
                 vt = (RloValueType)compiler.InternRloType(vt);
                 m_type = vt;
             }
             break;
         default:
             throw new Exception();
     }
 }
예제 #2
0
 public RloRefType(RloValueType vt)
 {
     m_subType = vt;
 }