Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/src/ml-nlffigen/gen.sml
ViewVC logotype

Diff of /sml/trunk/src/ml-nlffigen/gen.sml

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

revision 830, Tue May 15 19:48:17 2001 UTC revision 831, Tue May 22 20:29:39 2001 UTC
# Line 161  Line 161 
161            | dim_ty n = Con ("dg" ^ Int.toString (n mod 10),            | dim_ty n = Con ("dg" ^ Int.toString (n mod 10),
162                              [dim_ty (n div 10)])                              [dim_ty (n div 10)])
163    
164          fun Suobj'rw sut = Con ("su_obj'", [sut, Type "rw"])          fun Suobj'rw p sut = Con ("su_obj" ^ p, [sut, Type "rw"])
165          fun Suobj'ro sut = Con ("su_obj'", [sut, Type "ro"])          fun Suobj'ro sut = Con ("su_obj'", [sut, Type "ro"])
166          fun Suobj''c sut = Con ("su_obj'", [sut, Type "'c"])          fun Suobj''c sut = Con ("su_obj'", [sut, Type "'c"])
167    
# Line 173  Line 173 
173                  case res of                  case res of
174                      NONE => (Unit, [])                      NONE => (Unit, [])
175                    | SOME (S.STRUCT t) => let                    | SOME (S.STRUCT t) => let
176                          val ot = Suobj'rw (St t)                          val ot = Suobj'rw "'" (St t)
177                      in                      in
178                          (ot, [ot])                          (ot, [ot])
179                      end                      end
180                    | SOME (S.UNION t) => let                    | SOME (S.UNION t) => let
181                          val ot = Suobj'rw (Un t)                          val ot = Suobj'rw "'" (Un t)
182                      in                      in
183                          (ot, [ot])                          (ot, [ot])
184                      end                      end
# Line 236  Line 236 
236                  case res of                  case res of
237                      NONE => (Unit, [])                      NONE => (Unit, [])
238                    | SOME (S.STRUCT t) => let                    | SOME (S.STRUCT t) => let
239                          val ot = Suobj'rw (St t)                          val ot = Suobj'rw p (St t)
240                      in                      in
241                          (ot, [ot])                          (ot, [ot])
242                      end                      end
243                    | SOME (S.UNION t) => let                    | SOME (S.UNION t) => let
244                          val ot = Suobj'rw (Un t)                          val ot = Suobj'rw p (Un t)
245                      in                      in
246                          (ot, [ot])                          (ot, [ot])
247                      end                      end
# Line 871  Line 871 
871                    | oneArg (e, S.VOIDPTR) = e                    | oneArg (e, S.VOIDPTR) = e
872                    | oneArg (e, S.ARR _) = raise Fail "array argument type"                    | oneArg (e, S.ARR _) = raise Fail "array argument type"
873                  val c_exps = ListPair.map oneArg (ml_vars, args)                  val c_exps = ListPair.map oneArg (ml_vars, args)
874                    val (ml_vars, c_exps) =
875                        case res of
876                            SOME (S.STRUCT _ | S.UNION _) =>
877                            (EVar "x0" :: ml_vars,
878                             light ("obj", EVar "x0") :: c_exps)
879                          | _ => (ml_vars, c_exps)
880                  val call = EApp (EVar "call",                  val call = EApp (EVar "call",
881                                   ETuple [EApp (EVar ("fptr_fn_" ^ name),                                   ETuple [EApp (EVar ("fptr_fn_" ^ name),
882                                                 ETuple []),                                                 ETuple []),

Legend:
Removed from v.830  
changed lines
  Added in v.831

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