Exemple #1
0
        public void ParseFile(string moduleName, Stream inStream, Transpiler t)
        {
            Translator  = t;
            RootBlock   = RootBlock.Create(moduleName + "Module");
            t.RootBlock = RootBlock;
            Preprocessor preprocessor = new Preprocessor();
            TokenList    list         = preprocessor.Read(inStream);

#if DEBUG_TOKENIZER
            Debug.Print("");
            Debug.Print("");
            //DebugTextWriter writer = new DebugTextWriter();
            StringWriter writer = new StringWriter();
            list.Print(writer);
            Debug.Print(writer.ToString());
            Debug.Print("");
            Debug.Print("");
#endif
            //
            //PushPolicy(RootPolicy);
            CreateState(list);
            //Visit(RootBlock);
            PushDialect(new ParserDialect(this));
            ParseLines(RootBlock);
            PopState();
            //PopPolicy();

            //TODO:This should go in the compiler class.
            RootBlock.Resolve();
            t.Visit(RootBlock);
            //
            t.Close();
        }