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/cm/bootstrap/build-initdg.sml
ViewVC logotype

Diff of /sml/trunk/src/cm/bootstrap/build-initdg.sml

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

revision 714, Mon Oct 23 23:39:43 2000 UTC revision 715, Thu Nov 2 07:51:04 2000 UTC
# Line 32  Line 32 
32          val _ = Say.vsay ["[reading init spec from ",          val _ = Say.vsay ["[reading init spec from ",
33                            SrcPath.descr specgroup, "]\n"]                            SrcPath.descr specgroup, "]\n"]
34    
35            fun defined symbol = isSome (#get (#symval (#param gp) symbol) ())
36    
37          fun work stream = let          fun work stream = let
38              val source = S.newSource (SrcPath.osstring specgroup,              val source = S.newSource (SrcPath.osstring specgroup,
39                                        1, stream, false, errcons)                                        1, stream, false, errcons)
# Line 99  Line 101 
101                              loop (split, StringMap.insert (m, name, n), newpos)                              loop (split, StringMap.insert (m, name, n), newpos)
102                          end                          end
103                          val looksb = DG.SB_SNODE o look                          val looksb = DG.SB_SNODE o look
104                      in  
105                          case line of                          fun proc [] = loop (split, m, newpos)
106                              [] => loop (split, m, newpos)                            | proc ["split"] = loop (true, m, newpos)
107                            | ["split"] => loop (true, m, newpos)                            | proc ["nosplit"] = loop (false, m, newpos)
108                            | ["nosplit"] => loop (false, m, newpos)                            | proc ("bind" :: name :: file :: args)  =
                           | ("bind" :: name :: file :: args)  =>  
109                                  node (name, file, args, false, NONE)                                  node (name, file, args, false, NONE)
110                            | ("rts-placeholder" :: name :: file :: args) =>                            | proc ("rts-placeholder" :: name :: file :: args) =
111                                  node (name, file, args, true, NONE)                                  node (name, file, args, true, NONE)
112                            | ("bind-core" :: ecs :: name :: file :: args) =>                            | proc ("bind-core" :: ecs :: name :: file :: args) =
113                                  node (name, file, args, false,                                  node (name, file, args, false,
114                                        SOME (Symbol.strSymbol ecs))                                        SOME (Symbol.strSymbol ecs))
115                            | ("return" :: pervasive :: prims) =>                            | proc ("return" :: pervasive :: prims) =
116                                  SOME { pervasive = looksb pervasive,                                  SOME { pervasive = looksb pervasive,
117                                         others = map looksb prims,                                         others = map looksb prims,
118                                         src = source }                                         src = source }
119                            | _ => (error "malformed line"; NONE)                            | proc ("ifdef" :: symbol :: line) =
120                                proc (if defined symbol then line else [])
121                              | proc ("ifndef" :: symbol :: line) =
122                                proc (if defined symbol then [] else line)
123                              | proc _ = (error "malformed line"; NONE)
124                        in
125                            proc line
126                      end                      end
127          in          in
128              loop (false, StringMap.empty, 1)              loop (false, StringMap.empty, 1)

Legend:
Removed from v.714  
changed lines
  Added in v.715

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