示例#1
0
文件: Nire.cs 项目: donreamey/vmeex
        private void Compile(string iFileName)
        {
            try
            {
                Debug.Assert(null != iFileName);

                icode _icode = null;

                if (!File.Exists(iFileName))
                {
                    Console.WriteLine(String.Format("The file {0} does not exist", iFileName));
                    return;
                }

                _icode = new icode(@"output.txt", new System.IO.FileStream(iFileName, System.IO.FileMode.Open));

                System.Console.BackgroundColor = ConsoleColor.Blue;
                System.ConsoleColor color = System.Console.ForegroundColor;
                System.Console.ForegroundColor = ConsoleColor.White;
                System.Console.WriteLine("Parsing");

                var parser = new vmeex.Parser(_icode);
                Debug.Assert(null != parser);

                using (new ParserContext(ParserContextEnum.None))
                {
                    parser.Parse();
                }

                Expr expr = parser.GetIntermededateCode();
                GenerateIL il = new GenerateIL();
                il.InitGenerator(expr);

                System.Console.ForegroundColor = ConsoleColor.Red;
                System.Console.WriteLine("Compiling");

                if (parser.WriteErrors())
                {
                    return;
                }
            }
            catch (NireExecutionException nex)
            {
                Console.WriteLine(nex.Message);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
示例#2
0
文件: Parser.cs 项目: donreamey/vmeex
 internal Parser(icode scr)
     : this()
 {
     _scanner = scr;
 }