Subversion

Galculator

?curdirlinks? -

Blame information for rev 7

Line No. Rev Author Line
1 1 paulosilva  
2 {-# OPTIONS_GHC -Wall #-}
3  
4 -------------------------------------------------------------------------------
5  
6 {- |
7 Module      :  Language.R.Pretty
8 Description :  Pretty-printer of the expression representatation.
9 Copyright   :  (c) Paulo Silva
10 License     :  LGPL
11  
12 Maintainer  :  paufil@di.uminho.pt
13 Stability   :  experimental
14 Portability :  portable
15  
16 -}
17  
18 -------------------------------------------------------------------------------
19  
20 module Language.R.Pretty (
21   showR
22  ) where
23  
24 import {-# SOURCE #-} Language.R.Syntax
25 import Language.Type.Pretty
26  
27 -------------------------------------------------------------------------------
28  
29 showR :: R r -> ShowS
30 7 paulosilva showR = pretty
31 {-
32 1 paulosilva showR BOT = showString "BOT"
33 showR TOP = showString "TOP"
34 showR (NEG r) =
35   parens $
36     showString "NEG " .
37     showR r
38 showR (MEET r s) =
39   parens $
40     showString "MEET " .
41     showR r .
42     space .
43     showR s
44 showR (JOIN r s) =
45   parens $
46     showString "JOIN " .
47     showR r .
48     space .
49     showR s
50 showR ID = showString "ID"
51 showR (CONV r) =
52   parens $
53     showString "CONV " .
54     showR r
55 showR (COMP _ r s) =
56   parens $
57     showString "COMP " .
58     showR r .
59     space .
60     showR s
61 showR (SPLIT r s) =
62   parens $
63     showString "SPLIT " .
64     showR r .
65     space .
66     showR s
67 showR (ORD o) =
68   parens $ showString "ORD " . showR o
69 showR (FUN f) =
70   parens $ showString "FUN " . showR f
71 showR (LEFTSEC _ f s) =
72   parens $
73     showString "LEFTSEC " .
74     showR f .
75     space .
76     showR s
77 showR (RIGHTSEC _ f s) =
78    parens $
79      showString "RIGHTSEC " .
80      showR f .
81      space .
82      showR s
83 showR (APPLY _ r v) =
84   parens $
85     showString "APPLY " .
86     showR r .
87     space .
88     showR  v
89 showR (DEF nm t) =
90   parens $
91     showString "DEF " .
92     showString nm .
93     space .
94     showType t
95 showR (Var nm) = parens $ showString "Var " . showString nm
96 showR (PROD r s) =
97   parens $
98     showString "PROD " .
99     showR r .
100     space .
101     showR s
102 showR (EITHER r s) =
103   parens $
104     showString "EITHER " .
105     showR r .
106     space .
107     showR s
108 showR (MAYBE r) =
109   parens $
110     showString "MAYBE " .
111     showR r
112 showR (LIST r) =
113   parens $
114     showString "LIST " .
115     showR r
116 showR (SET r) =
117   parens $
118     showString "SET " .
119     showR r
120 showR (MAP r) =
121   parens $
122     showString "MAP " .
123     showR r
124 5 paulosilva showR (REYNOLDS r s) =
125   parens $
126     showString "REYNOLDS " .
127     showR r .
128     space .
129     showR s
130 1 paulosilva showR FId = showString "FId"
131 showR (FComp _ f g) =
132   parens $
133     showString "FComp " .
134     showR f .
135     space .
136     showR g
137 showR OId = showString "OId"
138 showR (OComp o1 o2) =
139   parens $
140     showString "OComp " .
141     showR o1 .
142     space .
143     showR o2
144 showR (OConv o) =
145   parens $
146     showString "OConv " .
147     showR o
148 showR (OProd o) =
149   parens $
150     showString "OProd " .
151     showR o
152 showR (OJoin o) =
153   parens $
154     showString "OJoin " .
155     showR o
156 showR (OMeet o) =
157   parens $
158     showString "OMeet " .
159     showR o
160 showR (OMax o) =
161   parens $
162     showString "OMax " .
163     showR o
164 showR (OMin o) =
165   parens $
166     showString "OMin " .
167     showR o
168 showR (GDef nm f g fo go) =
169   parens $
170     showString "GDef " .
171     showString nm . space .
172     showR f . space . showR g . space .
173     showR fo . space . showR go
174 showR GId = showString "GId"
175 showR (GComp _ g1 g2) =
176   parens $
177     showString "GComp " .
178     showR g1 .
179     space .
180     showR g2
181 showR (GConv g) =
182   parens $
183     showString "GConv " .
184     showR g
185 showR (GLAdj g) =
186   parens $
187     showString "GLAdj " .
188     showR g
189 showR (GUAdj g) =
190   parens $
191     showString "GUAdj " .
192     showR g
193 showR (GLOrd _ g) =
194   parens $
195     showString "GLOrd " .
196     showR g
197 showR (GUOrd _ g) =
198   parens $
199     showString "GUOrd " .
200     showR g
201 7 paulosilva -}
202 1 paulosilva -------------------------------------------------------------------------------
203  
204 parens :: ShowS -> String -> String
205 parens = showParen True
206  
207 -------------------------------------------------------------------------------
208  
209 space :: ShowS
210 space = showChar ' '
211  
212 -------------------------------------------------------------------------------
213  
214 7 paulosilva pretty :: R r -> ShowS
215 pretty BOT = showString "TT"
216 pretty TOP = showString "_||_"
217 pretty (NEG r) = showString "~" . pretty r
218 pretty (MEET r s) = parens $ pretty r . showString " /\\ " . pretty s
219 pretty (JOIN r s) = parens $ pretty r . showString " \\/ " . pretty s
220 pretty ID = showString "id"
221 pretty (CONV r) = pretty r . showString "*"
222 pretty (COMP _ r s) = parens $ pretty r . showString " . " . pretty s
223 pretty (SPLIT r s) =
224   showString "<" . pretty r . showString ", " . pretty s . showString ">"
225 pretty (ORD o) = pretty o
226 pretty (FUN f) = pretty f
227 pretty (LEFTSEC _ f s) =
228   parens $ showString "<" . pretty s . showString ">" . pretty f
229 pretty (RIGHTSEC _ f s) =
230   parens $ pretty f . showString "<" . pretty s . showString ">"
231 pretty (APPLY _ r v) =
232   parens $ pretty r . space . pretty v
233 pretty (DEF nm t) = showString nm
234 pretty (Var nm) = showString nm
235 pretty (PROD r s) = parens $ pretty r . showString " >< " . pretty s
236 pretty (EITHER r s) = parens $ pretty r . showString " -|- " . pretty s
237 pretty (MAYBE r) = showString ""
238 pretty (LIST r) = showString ""
239 pretty (SET r) =showString ""
240 pretty (MAP r) =showString ""
241 pretty (REYNOLDS r s) =showString ""
242 pretty FId = showString "id"
243 pretty (FComp _ f g) = parens $ pretty f . showString " . " . pretty g
244 pretty OId = showString ""
245 pretty (OComp o1 o2) = showString ""
246 pretty (OConv o) = showString ""
247 pretty (OProd o) = showString ""
248 pretty (OJoin o) = showString ""
249 pretty (OMeet o) = showString ""
250 pretty (OMax o) = showString ""
251 pretty (OMin o) = showString ""
252 pretty (GDef nm f g fo go) = showString ""
253 pretty GId = showString ""
254 pretty (GComp _ g1 g2) = showString ""
255 pretty (GConv g) = showString ""
256 pretty (GLAdj g) = showString ""
257 pretty (GUAdj g) = showString ""
258 pretty (GLOrd _ g) = showString ""
259 pretty (GUOrd _ g) = showString ""
260  
261 -------------------------------------------------------------------------------

Theme by Vikram Singh | Powered by WebSVN v2.3.3