Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }