Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Diff of /branches/charisee/src/compiler/c-util/print-as-c.sml
ViewVC logotype

Diff of /branches/charisee/src/compiler/c-util/print-as-c.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2667, Thu Jun 5 18:54:12 2014 UTC revision 2668, Thu Jun 12 03:29:04 2014 UTC
# Line 44  Line 44 
44                  in                  in
45                    ppList' l                    ppList' l
46                  end                  end
47    
48             fun q n =Int.toString n
49            fun ppTy (ty, optVar) = let            fun ppTy (ty, optVar) = let
50                  fun getBaseTy (CL.T_Ptr ty) = getBaseTy ty                  fun getBaseTy (CL.T_Ptr ty) = getBaseTy ty
51                    | getBaseTy (CL.T_Array(ty, _)) = getBaseTy ty                    | getBaseTy (CL.T_Array(ty, _)) = getBaseTy ty
# Line 60  Line 62 
62                          | RawTypes.RT_Double => "double"                          | RawTypes.RT_Double => "double"
63                        (* end case *))                        (* end case *))
64                    | getBaseTy (CL.T_Named ty) = ty                    | getBaseTy (CL.T_Named ty) = ty
65                      | getBaseTy (CL.T_RealArr( ty,_))= ty
66                    | getBaseTy (CL.T_Qual(attr, ty)) =                    | getBaseTy (CL.T_Qual(attr, ty)) =
67                        concat[attr, " ", getBaseTy ty]                        concat[attr, " ", getBaseTy ty]
68                  fun pp (isFirst, CL.T_Ptr ty, optVar) = (                  fun pp (isFirst, CL.T_Ptr ty, optVar) = (
# Line 77  Line 80 
80                        (* end case *))                        (* end case *))
81                    | pp (isFirst, CL.T_Qual(_, ty), optVar) =                    | pp (isFirst, CL.T_Qual(_, ty), optVar) =
82                        pp (isFirst, ty, optVar)                        pp (isFirst, ty, optVar)
83                    | pp (_,CL.T_RealArr(_,size) ,SOME x)=
84                        (str" ";str x; str"["; str (String.concatWith ","( List.map q size));str"]")
85                    | pp (_,CL.T_RealArr(_,size) ,NONE)=  raise Fail ("RealArray of NONE"^ (String.concatWith ","( List.map q size)))
86                    | pp (isFirst, _, SOME x) = (                    | pp (isFirst, _, SOME x) = (
87                        if isFirst then sp() else ();                        if isFirst then sp() else ();
88                        str x)                        str x)
# Line 282  Line 288 
288                                then FloatLit.toString f                                then FloatLit.toString f
289                                else FloatLit.toString f ^ "f"                                else FloatLit.toString f ^ "f"
290                        in                        in
291                          str f                              (str f)
292                        end                        end
293                    | CL.E_Bool b => str(Bool.toString b)                    | CL.E_Bool b => str(Bool.toString b)
294                    | CL.E_Str s => str(concat["\"", String.toCString s, "\""])                    | CL.E_Str s => str(concat["\"", String.toCString s, "\""])
295    
296                      | CL.E_Sizeof(CL.T_RealArr(ty,[n]))=>
297                         (str "sizeof("; str ty;str ")")
298    
299                            (*(str "sizeof("; str ty;str"*";str(q n);str ")")*)
300                    | CL.E_Sizeof ty => (str "sizeof("; ppTy(ty, NONE); str ")")                    | CL.E_Sizeof ty => (str "sizeof("; ppTy(ty, NONE); str ")")
301                  (*Just added *)                  (*Just added *)
302                  | CL.E_Struct e => let                  | CL.E_Struct e => let
# Line 298  Line 309 
309                          str "* )&("; ppExp e2; str ")")                          str "* )&("; ppExp e2; str ")")
310                  (*  *(ty* )& (exp)  *)                  (*  *(ty* )& (exp)  *)
311                 | CL.E_Ext e=>  ( str " __extension__ "; ppExp e)                 | CL.E_Ext e=>  ( str " __extension__ "; ppExp e)
312                  | CL.E_TyVar(ty,v)=>(ppTy(ty,NONE);str v)   | CL.E_TyVar(ty,v)=>(ppTy(ty,NONE) ;str" ";str  v )
313   | CL.E_Sqrt e=> (str"SQRT("; ppExp e;  str ")")   | CL.E_Sqrt e=> (str"SQRT("; ppExp e;  str ")")
314    
315    

Legend:
Removed from v.2667  
changed lines
  Added in v.2668

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0