Пример #1
0
 private LocalTypeNode LocalTypeExpected(NamespaceNode ns, LocalTypeFlags flags)
 {
     LocalTypeNode type;
     if (!LocalType(ns, flags, out type))
     {
         ErrorAndThrow(new DiagMsgEx(DiagCodeEx.SpecificTypeExpected, flags.ToString()));
     }
     return type;
 }
Пример #2
0
 private bool LocalType(NamespaceNode ns, LocalTypeFlags flags, out LocalTypeNode result)
 {
     if ((flags & LocalTypeFlags.Nullable) != 0)
     {
         NullableTypeNode r;
         if (NullableType(ns, out r))
         {
             result = r;
             return true;
         }
     }
     if ((flags & LocalTypeFlags.List) != 0)
     {
         ListOrSetTypeNode r;
         if (ListType(ns, out r))
         {
             result = r;
             return true;
         }
     }
     if ((flags & LocalTypeFlags.Set) != 0)
     {
         ListOrSetTypeNode r;
         if (SetType(ns, out r))
         {
             result = r;
             return true;
         }
     }
     if ((flags & LocalTypeFlags.Map) != 0)
     {
         MapTypeNode r;
         if (MapType(ns, out r))
         {
             result = r;
             return true;
         }
     }
     if ((flags & LocalTypeFlags.GlobalTypeRef) != 0)
     {
         GlobalTypeRefNode r;
         if (GlobalTypeRef(ns, out r))
         {
             result = r;
             return true;
         }
     }
     result = null;
     return false;
 }