on master help sign in
remove dead code from markdown interpolation experiment
85eb0daEvan Czaplicki
src/AST/Expression/General.hs+2−2
@@ -55,7 +55,7 @@ data Expr' ann def var
55 | Insert (Expr ann def var) String (Expr ann def var)
55 | Insert (Expr ann def var) String (Expr ann def var)
56 | Modify (Expr ann def var) [(String, Expr ann def var)]
56 | Modify (Expr ann def var) [(String, Expr ann def var)]
57 | Record [(String, Expr ann def var)]
57 | Record [(String, Expr ann def var)]
58− | Markdown String String [Expr ann def var]
58+ | Markdown String String
59 -- for type checking and code gen only
59 -- for type checking and code gen only
60 | PortIn String (Type var)
60 | PortIn String (Type var)
61 | PortOut String (Type var) (Expr ann def var)
61 | PortOut String (Type var) (Expr ann def var)
@@ -157,7 +157,7 @@ instance (Pretty def, Pretty var, Var.ToString var) => Pretty (Expr' ann def var
157 where
157 where
158 field (x,e) = variable x <+> P.equals <+> pretty e
158 field (x,e) = variable x <+> P.equals <+> pretty e
159
159
160− Markdown _ _ _ -> P.text "[markdown| ... |]"
160+ Markdown _ _ -> P.text "[markdown| ... |]"
161
161
162 GLShader _ _ _ -> P.text "[glsl| ... |]"
162 GLShader _ _ _ -> P.text "[glsl| ... |]"
163
163
src/Generate/JavaScript.hs+5−6
@@ -180,12 +180,11 @@ expression (A region expr) =
180 ctor = (prop "ctor", string name)
180 ctor = (prop "ctor", string name)
181 fields = zipWith (\n e -> (prop ("_" ++ show n), e)) [0..]
181 fields = zipWith (\n e -> (prop ("_" ++ show n), e)) [0..]
182
182
183− Markdown uid doc es ->
183+ Markdown uid doc ->
184− do es' <- mapM expression es
185− return $ Var.value ["Text"] "markdown" `call` (string md : string uid : es')
184+ return $ Var.value ["Text"] "markdown" `call` [ string md, string uid ]
186− where
185+ where
187− pad = "<div style=\"height:0;width:0;\">&nbsp;</div>"
186+ pad = "<div style=\"height:0;width:0;\">&nbsp;</div>"
188− md = pad ++ MD.toHtml doc ++ pad
187+ md = pad ++ MD.toHtml doc ++ pad
189
188
190 GLShader _uid src _tipe ->
189 GLShader _uid src _tipe ->
191 return $ ObjectLit () [(PropString () "src", literal (Str src))]
190 return $ ObjectLit () [(PropString () "src", literal (Str src))]
src/Parse/Expression.hs+2−11
@@ -59,8 +59,8 @@ listTerm = markdown' <|> shader' <|> braces (try range <|> E.ExplicitList <$> co
59 markdown' = do
59 markdown' = do
60 pos <- getPosition
60 pos <- getPosition
61 let uid = show (sourceLine pos) ++ ":" ++ show (sourceColumn pos)
61 let uid = show (sourceLine pos) ++ ":" ++ show (sourceColumn pos)
62− (rawText, exprs) <- Help.markdown (interpolation uid)
62+ rawText <- Help.markdown
63− return (E.Markdown uid (filter (/='\r') rawText) exprs)
63+ return (E.Markdown uid (filter (/='\r') rawText))
64
64
65 shader' = do
65 shader' = do
66 pos <- getPosition
66 pos <- getPosition
@@ -68,15 +68,6 @@ listTerm = markdown' <|> shader' <|> braces (try range <|> E.ExplicitList <$> co
68 (rawSrc, tipe) <- Help.shader
68 (rawSrc, tipe) <- Help.shader
69 return $ E.GLShader uid (filter (/='\r') rawSrc) tipe
69 return $ E.GLShader uid (filter (/='\r') rawSrc) tipe
70
70
71− span uid index =
72− "<span id=\"md-" ++ uid ++ "-" ++ show index ++
73− "\">{{ markdown interpolation is in the pipeline, but still needs more testing }}</span>"
74−
75− interpolation uid exprs = do
76− try (string "{{")
77− e <- padded expr
78− string "}}"
79− return (span uid (length exprs), exprs ++ [e])
80
71
81parensTerm :: IParser Source.Expr
72parensTerm :: IParser Source.Expr
82parensTerm = try (parens opFn) <|> parens (tupleFn <|> parened)
73parensTerm = try (parens opFn) <|> parens (tupleFn <|> parened)
src/Parse/Helpers.hs+8−10
@@ -2,7 +2,7 @@ module Parse.Helpers where
2
2
3import Prelude hiding (until)
3import Prelude hiding (until)
4import Control.Applicative ((<$>),(<*>))
4import Control.Applicative ((<$>),(<*>))
5−import Control.Monad (guard, join, mzero)
5+import Control.Monad (guard, join)
6import Control.Monad.State (State)
6import Control.Monad.State (State)
7import Data.Char (isUpper)
7import Data.Char (isUpper)
8import qualified Data.Map as Map
8import qualified Data.Map as Map
@@ -261,7 +261,7 @@ ignoreUntil end = go
261 ignore p = const () <$> p
261 ignore p = const () <$> p
262 filler = choice [ try (ignore chr) <|> ignore str
262 filler = choice [ try (ignore chr) <|> ignore str
263 , ignore multiComment
263 , ignore multiComment
264− , ignore (markdown (\_ -> mzero))
264+ , ignore markdown
265 , ignore anyChar
265 , ignore anyChar
266 ]
266 ]
267 go = choice [ Just <$> end
267 go = choice [ Just <$> end
@@ -294,18 +294,16 @@ anyUntilPos pos = go
294 True -> return []
294 True -> return []
295 False -> (:) <$> anyChar <*> go
295 False -> (:) <$> anyChar <*> go
296
296
297−markdown :: ([a] -> IParser (String, [a])) -> IParser (String, [a])
297+markdown :: IParser String
298−markdown interpolation =
298+markdown =
299 do try (string "[markdown|")
299 do try (string "[markdown|")
300− closeMarkdown id []
300+ closeMarkdown id
301 where
301 where
302− closeMarkdown markdownBuilder stuff =
302+ closeMarkdown markdownBuilder =
303 choice [ do try (string "|]")
303 choice [ do try (string "|]")
304− return (markdownBuilder "", stuff)
304+ return (markdownBuilder "")
305− , do (markdown,stuff') <- interpolation stuff
306− closeMarkdown (markdownBuilder . (markdown++)) stuff'
307 , do c <- anyChar
305 , do c <- anyChar
308− closeMarkdown (markdownBuilder . (c:)) stuff
306+ closeMarkdown (markdownBuilder . (c:))
309 ]
307 ]
310
308
311shader :: IParser (String, L.GLShaderTipe)
309shader :: IParser (String, L.GLShaderTipe)
src/Transform/Canonicalize.hs+2−2
@@ -282,9 +282,9 @@ expression env (A.A ann expr) =
282 (,) <$> format (pattern env p)
282 (,) <$> format (pattern env p)
283 <*> expression (update p env) b
283 <*> expression (update p env) b
284
284
285− Markdown uid md es ->
285+ Markdown uid md ->
286 do Env.uses ["Text"]
286 do Env.uses ["Text"]
287− Markdown uid md <$> mapM go es
287+ return (Markdown uid md)
288
288
289 PortIn name st ->
289 PortIn name st ->
290 PortIn name <$> tipe' env st
290 PortIn name <$> tipe' env st
src/Transform/Expression.hs+1−1
@@ -48,7 +48,7 @@ crawl portInCheck portOutCheck defsTransform = go
48 Insert e lbl v -> Insert <$> go e <*> return lbl <*> go v
48 Insert e lbl v -> Insert <$> go e <*> return lbl <*> go v
49 Modify e fields -> Modify <$> go e <*> mapM (\(k,v) -> (,) k <$> go v) fields
49 Modify e fields -> Modify <$> go e <*> mapM (\(k,v) -> (,) k <$> go v) fields
50 Record fields -> Record <$> mapM (\(k,v) -> (,) k <$> go v) fields
50 Record fields -> Record <$> mapM (\(k,v) -> (,) k <$> go v) fields
51− Markdown uid md es -> Markdown uid md <$> mapM go es
51+ Markdown uid md -> return $ Markdown uid md
52 Let defs body -> Let <$> defsTransform defs <*> go body
52 Let defs body -> Let <$> defsTransform defs <*> go body
53 GLShader uid src gltipe -> return $ GLShader uid src gltipe
53 GLShader uid src gltipe -> return $ GLShader uid src gltipe
54 PortIn name st ->
54 PortIn name st ->
src/Transform/SortDefinitions.hs+1−1
@@ -97,7 +97,7 @@ reorder (A ann expr) =
97 Record fields ->
97 Record fields ->
98 Record <$> mapM (\(k,v) -> (,) k <$> reorder v) fields
98 Record <$> mapM (\(k,v) -> (,) k <$> reorder v) fields
99
99
100− Markdown uid md es -> Markdown uid md <$> mapM reorder es
100+ Markdown uid md -> return $ Markdown uid md
101
101
102 GLShader _ _ _ -> return expr
102 GLShader _ _ _ -> return expr
103
103
src/Transform/Substitute.hs+1−2
@@ -79,8 +79,7 @@ subst old new expression =
79
79
80 Literal _ -> expression
80 Literal _ -> expression
81
81
82− Markdown uid md exprs ->
82+ Markdown _ _ -> expression
83− Markdown uid md (map f exprs)
84
83
85 GLShader _ _ _ -> expression
84 GLShader _ _ _ -> expression
86
85
src/Type/Constrain/Expression.hs+2−5
@@ -151,11 +151,8 @@ constrain env (A region expr) tipe =
151 recordType = record fields' (termN EmptyRecord1)
151 recordType = record fields' (termN EmptyRecord1)
152 return . ex vars . and $ tipe === recordType : cs
152 return . ex vars . and $ tipe === recordType : cs
153
153
154− Markdown _ _ es ->
154+ Markdown _ _ ->
155− do vars <- forM es $ \_ -> liftIO (variable Flexible)
156− let tvars = map varN vars
157− cs <- zipWithM (constrain env) es tvars
158− return . ex vars $ and ("Text.markdown" <? tipe : cs)
155+ return ("Text.markdown" <? tipe)
159
156
160 Let defs body ->
157 Let defs body ->
161 do c <- constrain env body tipe
158 do c <- constrain env body tipe