Exemplo n.º 1
0
        public static void Run(string file_name, ScriptBlock [] blocks)
        {
            CodeGenerator.Init(file_name);

            //
            // Emit first all the declarations (function and variables)
            //
            foreach (ScriptBlock script_block in blocks)
            {
                CodeGenerator.EmitDecls(script_block);
            }

            //
            // emit everything that's not a declaration
            //
            foreach (ScriptBlock script_block in blocks)
            {
                script_block.Emit();
            }

            //
            // Create the types ('JScript N')
            //
            foreach (ScriptBlock script_block in blocks)
            {
                script_block.CreateType();
            }

            //
            // Build the default 'JScript Main' class
            //
            TypeBuilder main_type_builder = module_builder.DefineType("JScript Main");

            emit_jscript_main(main_type_builder);
            main_type_builder.CreateType();

            CodeGenerator.Save(trim_extension(file_name) + ".exe");
        }