private void AddEnumWord(ZEnumType zenum, WordDictionary wordDictionary) { //ZEnumType zenum = descType as ZEnumType; //UseManageContext.UseZEnumList.Add(zenum); ZEnumElementInfo[] values = zenum.EnumElements; foreach (var field in values) { foreach (var zname in field.ZNames) { WordInfo info = new WordInfo(zname, WordKind.EnumElement); wordDictionary.Add(info); } } }
public void AnalyNameItem(Token nameToken) { ContextUse useContext = this.FileContext.UseContext; string typeName = nameToken.GetText(); if (useContext.ContainsType(typeName)) { this.FileContext.Errorf(nameToken.Position, "'{0}'已经被使用", typeName); } else { IZDescType[] ztypes = this.FileContext.ImportContext.ImportPackageDescList.SearchZDescType(typeName); IZDescType descType = ztypes[0]; if (descType is ZClassType) { ZClassType zclass = descType as ZClassType; if (zclass.IsStatic) { useContext.UseZClassList.Add(zclass); } else { this.FileContext.Errorf(nameToken.Position, "'{0}'不是唯一类型,不能被简略使用", typeName); } } else if (descType is ZEnumType) { ZEnumType zenum = descType as ZEnumType; useContext.UseZEnumList.Add(zenum); } else if (descType is ZDimType) { ZDimType zdim = descType as ZDimType; useContext.UseZDimList.Add(zdim); } else { throw new CompileException(); } } }