private Location checkLocation; //当前正在被检查的位置,用于序列化 public ASTChecker(CompilerKernel kernel) { this.kernel = kernel; exprParser = new ExpressionParser(kernel); }
public ContentChecker(CompilerKernel kernel) { this.kernel = kernel; this.contentManager = kernel.ContentManager; }
Location checkLocation; //当前正在被检查的位置,用于序列化 public ContentChecker(CompilerKernel kernel) { this.kernel = kernel; this.contentManager = kernel.ContentManager; }
public ASTChecker(CompilerKernel kernel) { this.kernel = kernel; exprParser = new ExpressionParser(kernel); }
//private Dictionary<string, List<string>> funcParaStrMap = new Dictionary<string, List<string>>(); public ASTBuilder(CompilerKernel kernel) { this.kernel = kernel; dic = new Translator(null); //TODO: Translate! exprParser = new ExpressionParser(kernel); }
static void Main(string[] args) { /* int plotNum = int.Parse(args[0]); int assetNum = int.Parse(args[1]); string contentPath = args[2]; const int BEGIN_ARG = 3; List<string> plotList = new List<string>(); List<string> assetList = new List<string>(); for (int i = BEGIN_ARG; i < BEGIN_ARG + plotNum; i++) { plotList.Add(args[i]); } for (int i = BEGIN_ARG + plotNum; i < BEGIN_ARG + plotNum + assetNum; i++) { assetList.Add(args[i]); }*/ FileInfo assemblyFileInfo = new FileInfo(args[0]); DirectoryInfo fireMLDirInfo = assemblyFileInfo.Directory; DirectoryInfo contentDirInfo = fireMLDirInfo.Parent; List<string> plotFileList = new List<string>(); List<string> assetFileList = new List<string>(); foreach (FileInfo fileInfo in fireMLDirInfo.GetFiles("*.*", SearchOption.AllDirectories)) { string ext = fileInfo.Extension; if (ext == ".fmlplot") { plotFileList.Add(fileInfo.FullName); } else if (ext == ".fmlasset") { assetFileList.Add(fileInfo.FullName); } } string xsdDirPath = fireMLDirInfo.FullName + "\\" + "XSD"; FireEngine.XNAContent.ContentManager contentManager = new FireEngine.XNAContent.ContentManager(contentDirInfo.FullName); CompilerKernel kernel = new CompilerKernel(plotFileList.ToArray(), assetFileList.ToArray(), xsdDirPath, contentManager); FireMLRoot result = kernel.CompileFireML(); Error[] errors = kernel.CheckPoint(); foreach (Error e in errors) { Console.WriteLine("{0}\n{1},{2}\n{3}", e.Location.FileName, e.Location.Line, e.Location.Column, e.Message); Console.WriteLine(); } if (errors.Length > 0) { Environment.Exit(-1); return; } BinaryFormatter bf = new BinaryFormatter(); FileStream writeStream = new FileStream("compiled.bin", FileMode.Create); bf.Serialize(writeStream,result); writeStream.Close(); Console.WriteLine("编译完成"); FileStream readStream = new FileStream("compiled.bin", FileMode.Open); FireMLRoot deserialized = bf.Deserialize(readStream) as FireMLRoot; }
internal AssetBuilder(CompilerKernel kernel) { this.kernel = kernel; dic = new Translator(null); //TODO: Translate! }
//private static Regex strPattern = new Regex("^\"(.*)\"", RegexOptions.Compiled); internal ExpressionParserKernel(CompilerKernel kernel, string expr, Location loc) { this.kernel = kernel; this.expr = expr; this.loc = loc; }
internal ExpressionParser(CompilerKernel kernel) { this.kernel = kernel; }