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/util/subst.sml
ViewVC logotype

Diff of /sml/trunk/src/cm/util/subst.sml

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

revision 873, Mon Jul 9 15:26:20 2001 UTC revision 1148, Fri Mar 15 21:38:57 2002 UTC
# Line 42  Line 42 
42    
43      fun substitute rules = let      fun substitute rules = let
44          val rules =          val rules =
45              map (fn { prefix, substitutions } => { prefix = SS.all prefix,              map (fn { prefix, substitutions } =>
46                                                     substitutions = substitutions })                      { prefix = SS.all prefix, substitutions = substitutions })
47                  rules                  rules
48          fun doit s = let          fun doit s = let
49              val len = size s              val len = size s
# Line 71  Line 71 
71                                       in                                       in
72                                           case replace ss of                                           case replace ss of
73                                               NONE => finddosubst sl                                               NONE => finddosubst sl
74                                             | SOME r => loop (j, j, SS.all r :: acc)                                             | SOME r =>
75                                                 loop (j, j, SS.all r :: acc)
76                                       end                                       end
77                               in                               in
78                                   if j > len then loop (i, len, acc)                                   if j > len then loop (i, len, acc)
# Line 88  Line 89 
89          doit          doit
90      end      end
91    
92      fun subfor p r ss = if Substring.compare (Substring.all p, ss) = EQUAL then SOME r      fun subfor p r ss =
93            if Substring.compare (Substring.all p, ss) = EQUAL then SOME r
94                          else NONE                          else NONE
95    
96      fun submap (plen, stopchar) m ss = let      fun submap (plen, stopchar) m ss = let
# Line 102  Line 104 
104      fun subnsel (plen, stopchar, sel, sep) l ss = let      fun subnsel (plen, stopchar, sel, sep) l ss = let
105          fun m numslice = let          fun m numslice = let
106              val nums = SS.string numslice              val nums = SS.string numslice
107              fun concatWith sep l = (* String.concatWith sep l *)              fun all () = SOME (String.concatWith sep (map sel l))
                 let fun build [] = []  
                       | build [x] = [x]  
                       | build (x :: xs) = x :: sep :: build xs  
                 in  
                     concat (build l)  
                 end  
             fun all () = SOME (concatWith sep (map sel l))  
108              fun seli i =              fun seli i =
109                  SOME (sel (List.nth (l, i))                  SOME (sel (List.nth (l, i))
110                        handle General.Subscript => SS.string ss)                        handle General.Subscript => SS.string ss)

Legend:
Removed from v.873  
changed lines
  Added in v.1148

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