示例#1
0
        public static void GenerateKernels(string kernelDirectory)
        {
            string baseKernelPath = $"{kernelDirectory}/BaseKernel.cs";

            if (!File.Exists(baseKernelPath))
            {
                throw new Exception("No base kernel detected!");
            }

            string[] code = File.ReadAllLines(baseKernelPath);

            var constantMapping  = new ConstantMapping(code);
            var functionMappings = new FunctionMapping(code);

            string[] kerenelFiles = Directory.GetFiles(kernelDirectory);

            foreach (string kernelPath in kerenelFiles)
            {
                string kernelName = Path.GetFileNameWithoutExtension(kernelPath);

                if (kernelName == "BaseKernel")
                {
                    continue;
                }

                KernelFile kernelFile = CreateKernel(kernelPath, constantMapping, functionMappings);

                KernelCache.Add(kernelName, kernelFile);
            }
        }
示例#2
0
        public static void GenerateKernels(string kernelDirectory)
        {
            string symbolPath = string.Format("{0}/SymbolKernel.cs", kernelDirectory);

            if (!File.Exists(symbolPath))
            {
                throw new Exception("No symbol kernel detected!");
            }

            SymbolMapping symbolMapping = CreateSymbolMapping(symbolPath);

            string[] kerenelFiles = Directory.GetFiles(kernelDirectory);

            foreach (string kernelPath in kerenelFiles)
            {
                string kernelName = Path.GetFileNameWithoutExtension(kernelPath);

                if (kernelName == "SymbolKernel")
                {
                    continue;
                }

                KernelFile kernelFile = CreateKernel(kernelPath, symbolMapping);

                KernelCache.Add(kernelName, kernelFile);
            }
        }