diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compile_old_c.rhope	Wed Oct 13 01:15:04 2010 +0000
@@ -0,0 +1,30 @@
+
+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"]
+        }
+}
+