view compile_old_c.rhope @ 114:25a205094f9b

More performance optimizations
author Mike Pavone <pavone@retrodev.com>
date Wed, 13 Oct 2010 01:15:04 +0000
parents
children 18a4403fe576
line wrap: on
line source


Import parser_old_c.rhope

Main[args]
{
        fname <- [args]Index[1]
        {
                file <- [File[~]]Open["r"]
                text <- String[[file]Read[[file]Length]]
                params <- Parser[]
                Print[["Parsing "]Append[fname]]
                Null[text, params, Parse Program[], 0]
                {
                        Print["Parsing imports"]
                        Process Imports[~, params]
                        {
                                tree <- [~]Workers << [ Map[[~]Workers >>, Check Worker Literals[?, ~]] ]
                                { Print["Compiling"] }
                        }
                        compiled <- [Tree to Program Native[tree]]Compile Program[C Program[]]
                        { Print["Compiled program to backend"] }
                        outfile <- [File[ [fname]Append[".c"] ]]Truncate
                        [[compiled]Text]Write to File[outfile] 
                        { Print[["Wrote output to "]Append[ [fname]Append[".c"] ]] }
                }
        }{
                Print["You must provide a file name to compile"]
        }
}