/// <summary> /// 注册程序集 /// </summary> /// <param name="package">程序集合</param> /// <returns>唯一Id</returns> public int RegisteredPackage(TSPackage package) { int onlyId = 0; if (_packageKey.ContainsKey(package.PackageName)) { onlyId = _packageKey[package.PackageName]; } else { onlyId = GetOnlyId(); _packageKey.Add(package.PackageName, onlyId); PackageDic.Add(onlyId, package); } return(onlyId); }
/// <summary> /// 加载字符串 /// </summary> /// <param name="code">字符串</param> /// <param name="packageName">包名</param> /// <returns>解析好的程序包</returns> public TSPackage LoadPackage(string code, string packageName = null) { if (string.IsNullOrWhiteSpace(packageName)) { packageName = PACKAGE_NAME; } TSPackage package = GetPackageMetaData(packageName); if (package == null) { package = new TSPackage(this, GetOnlyId(), packageName); _packageKey.Add(packageName, package.OnlyId); _packageDic.Add(package.OnlyId, package); } package.CompileCode(_lexer, code); return(package); }