Example #1
0
        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;
 }
Example #3
0
        Location checkLocation; //当前正在被检查的位置,用于序列化

        public ContentChecker(CompilerKernel kernel)
        {
            this.kernel         = kernel;
            this.contentManager = kernel.ContentManager;
        }
 public ASTChecker(CompilerKernel kernel)
 {
     this.kernel = kernel;
     exprParser = new ExpressionParser(kernel);
 }
Example #5
0
        //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;
        }
Example #7
0
 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;
 }
Example #9
0
        //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;
        }
Example #10
0
 internal ExpressionParser(CompilerKernel kernel)
 {
     this.kernel = kernel;
 }
 internal ExpressionParser(CompilerKernel kernel)
 {
     this.kernel = kernel;
 }