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/smlnj-lib/PP/devices/html-dev.sml
ViewVC logotype

Diff of /sml/trunk/src/smlnj-lib/PP/devices/html-dev.sml

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

revision 288, Sat May 22 21:01:25 1999 UTC revision 289, Sat May 22 21:01:25 1999 UTC
# Line 9  Line 9 
9    
10      include PP_DEVICE      include PP_DEVICE
11    
12      (* combine two styles into one *)
13        val combineStyle : (style * style) -> style
14    
15      (* unstyled text *)
16        val styleNONE : style
17    
18      (* standard HTML text styles *)
19      val styleTT : style      val styleTT : style
20      val styleI : style      val styleI : style
21      val styleB : style      val styleB : style
# Line 23  Line 30 
30      val styleVAR : style      val styleVAR : style
31      val styleCITE : style      val styleCITE : style
32    
33      (* color text (using FONT element) *)
34      val color : string -> style      val color : string -> style
35    
36      (* hyper-text links and anchors *)
37        val link : string -> style
38        val anchor : string -> style
39    
40      val openDev : {wid : int, textWid : int option} -> device      val openDev : {wid : int, textWid : int option} -> device
41      val done : device -> HTML.text      val done : device -> HTML.text
42    
# Line 36  Line 48 
48        | STRONG | DFN | CODE | SAMP | KBD        | STRONG | DFN | CODE | SAMP | KBD
49        | VAR | CITE        | VAR | CITE
50        | COLOR of string        | COLOR of string
51          | LINK of string
52          | ANCHOR of string
53          | STYS of style list
54    
55      datatype device = DEV of {      datatype device = DEV of {
56          lineWid : int,          lineWid : int,
# Line 69  Line 84 
84    
85      fun wrapStyle (sty, [], tl') = tl'      fun wrapStyle (sty, [], tl') = tl'
86        | wrapStyle (sty, tl, tl') = let        | wrapStyle (sty, tl, tl') = let
87              fun wrap (NOEMPH, t) = t
88                | wrap (TT, t) = HTML.TT t
89                | wrap (I, t) = HTML.I t
90                | wrap (B, t) = HTML.B t
91                | wrap (U, t) = HTML.U t
92                | wrap (STRIKE, t) = HTML.STRIKE t
93                | wrap (EM, t) = HTML.EM t
94                | wrap (STRONG, t) = HTML.STRONG t
95                | wrap (DFN, t) = HTML.DFN t
96                | wrap (CODE, t) = HTML.CODE t
97                | wrap (SAMP, t) = HTML.SAMP t
98                | wrap (KBD, t) = HTML.KBD t
99                | wrap (VAR, t) = HTML.VAR t
100                | wrap (CITE, t) = HTML.CITE t
101                | wrap (COLOR c, t) = HTML.FONT{color=SOME c, size=NONE, content=t}
102                | wrap (LINK s, t) = HTML.A{
103                      name = NONE, href = SOME s,
104                      rel = NONE, rev = NONE, title = NONE,
105                      content = t
106                    }
107                | wrap (ANCHOR s, t) = HTML.A{
108                      name = SOME s, href = NONE,
109                      rel = NONE, rev = NONE, title = NONE,
110                      content = t
111                    }
112                | wrap (STYS l, t) = List.foldr wrap t l
113            val t = (case tl of [t] => t | _ => HTML.TextList(List.rev tl))            val t = (case tl of [t] => t | _ => HTML.TextList(List.rev tl))
           val t = (case sty  
                  of NOEMPH => t  
                   | TT => HTML.TT t  
                   | I => HTML.I t  
                   | B => HTML.B t  
                   | U => HTML.U t  
                   | STRIKE => HTML.STRIKE t  
                   | EM => HTML.EM t  
                   | STRONG => HTML.STRONG t  
                   | DFN => HTML.DFN t  
                   | CODE => HTML.CODE t  
                   | SAMP => HTML.SAMP t  
                   | KBD => HTML.KBD t  
                   | VAR => HTML.VAR t  
                   | CITE => HTML.CITE t  
                   | (COLOR c) => HTML.FONT{color=SOME c, size=NONE, content=t}  
                 (* end case *))  
114            in            in
115              t :: tl'              wrap(sty, t) :: tl'
116            end            end
117    
118    (* push/pop a style from the devices style stack.  A pop on an    (* push/pop a style from the devices style stack.  A pop on an
# Line 131  Line 155 
155    (* flush is a nop for us *)    (* flush is a nop for us *)
156      fun flush _ = ()      fun flush _ = ()
157    
158        fun combineStyle (NOEMPH, sty) = sty
159          | combineStyle (sty, NOEMPH) = sty
160          | combineStyle (STYS l1, STYS l2) = STYS(l1 @ l2)
161          | combineStyle (sty, STYS l) = STYS(sty::l)
162          | combineStyle (sty1, sty2) = STYS[sty1, sty2]
163    
164        val styleNONE = NOEMPH
165      val styleTT = TT      val styleTT = TT
166      val styleI = I      val styleI = I
167      val styleB = B      val styleB = B
# Line 145  Line 176 
176      val styleVAR = VAR      val styleVAR = VAR
177      val styleCITE = CITE      val styleCITE = CITE
178      val color = COLOR      val color = COLOR
179        val link = LINK
180        val anchor = ANCHOR
181    
182      fun openDev {wid, textWid} = DEV{      fun openDev {wid, textWid} = DEV{
183              txt = ref [],              txt = ref [],

Legend:
Removed from v.288  
changed lines
  Added in v.289

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