Esempio n. 1
0
        private void AddPackage(ZPackageInfo zdesc)
        {
            ContextImportUse contextiu = this.ASTFile.FileContext.ImportUseContext;

            foreach (var item in zdesc.EnumTypes)
            {
                contextiu.AddImportType(item);
            }

            foreach (ZLDimInfo item in zdesc.DimTypes)
            {
                contextiu.AddDimType(item);
            }

            foreach (var item in zdesc.ClassTypes)
            {
                contextiu.AddImportType(item);
            }
            return;
        }
Esempio n. 2
0
        public void AnalyNameItemType(LexTokenText nameToken)
        {
            ContextImportUse importUseContext = this.ASTFile.FileContext.ImportUseContext;
            string           typeName         = nameToken.Text;
            var ztypes = importUseContext.SearchByTypeName(typeName);

            if (ztypes.Length == 0)
            {
                this.ASTFile.FileContext.Errorf(nameToken.Position, "没有搜索到'{0}'", typeName);
                return;
            }
            var descType = ztypes[0];

            if (descType is ZLClassInfo)
            {
                ZLClassInfo zclass = descType as ZLClassInfo;
                if (zclass.IsStatic)
                {
                    importUseContext.AddUseType(zclass);
                }
                else
                {
                    this.ASTFile.FileContext.Errorf(nameToken.Position, "'{0}'不是唯一类型,不能被导入类", typeName);
                }
            }
            else if (descType is ZLEnumInfo)
            {
                ZLEnumInfo zenum = descType as ZLEnumInfo;
                importUseContext.AddUseType(zenum);
            }
            else if (descType is ZLDimInfo)
            {
                ZLDimInfo zdim = descType as ZLDimInfo;
                importUseContext.AddDimType(zdim);
            }
            else
            {
                throw new CCException();
            }
        }