on master help sign in
Moved Quasiquote under Elab namespace.
commit1909c32e4b5e9d846be52b2e983a1ca352f079d5 authorJan de Muijnck-Hughes <jfdm@st-andrews.ac.uk> dateFri 5 Feb 2016, 08:51 (11 years ago) parentb61bdac
6 files changed+30−32
idris.cabal+1−1 src/Idris/ElabQuasiquote.hs → src/Idris/Elab/Quasiquote.hs+1−3 src/Idris/Elab/Term.hs+1−1 src/Idris/Interactive.hs+22−22 src/Idris/Parser.hs+4−4 src/Idris/REPL.hs+1−1
idris.cabal+1−1
@@ -871,6 +871,7 @@ Library
871871 , Idris.Elab.Transform
872872 , Idris.Elab.Value
873873 , Idris.Elab.Term
874+ , Idris.Elab.Quasiquote
874875
875876 , Idris.REPL.Browse
876877
@@ -891,7 +892,6 @@ Library
891892 , Idris.Docs
892893 , Idris.Docstrings
893894 , Idris.ElabDecls
894− , Idris.ElabQuasiquote
895895 , Idris.Erasure
896896 , Idris.Error
897897 , Idris.ErrReverse
src/Idris/ElabQuasiquote.hs → src/Idris/Elab/Quasiquote.hsrenamed+1−3
@@ -1,4 +1,4 @@
1−module Idris.ElabQuasiquote (extractUnquotes) where
1+module Idris.Elab.Quasiquote (extractUnquotes) where
22
33import Idris.Core.Elaborate hiding (Tactic(..))
44import Idris.Core.TT
@@ -171,5 +171,3 @@ extractUnquotes n (PRunElab fc tm ns)
171171extractUnquotes n (PConstSugar fc tm)
172172 = extractUnquotes n tm
173173extractUnquotes n x = return (x, []) -- no subterms!
174−
175−
src/Idris/Elab/Term.hs+1−1
@@ -20,7 +20,7 @@ import Idris.Core.Typecheck (check, recheck, converts, isType)
2020import Idris.Core.WHNF (whnf)
2121import Idris.Coverage (buildSCG, checkDeclTotality, genClauses, recoverableCoverage, validCoverageCase)
2222import Idris.ErrReverse (errReverse)
23−import Idris.ElabQuasiquote (extractUnquotes)
23+import Idris.Elab.Quasiquote (extractUnquotes)
2424import Idris.Elab.Utils
2525import Idris.Reflection
2626import qualified Util.Pretty as U
src/Idris/Interactive.hs+22−22
@@ -76,7 +76,7 @@ addClauseFrom fn updatefile l n = do
7676 getIndent i n xs | take 9 xs == "instance " = i
7777 getIndent i n xs | take (length n) xs == n = i
7878 getIndent i n (x : xs) = getIndent (i + 1) n xs
79−
79+
8080 getAppName (PApp _ r _) = getAppName r
8181 getAppName (PRef _ _ r) = r
8282 getAppName (PTyped n _) = getAppName n
@@ -120,7 +120,7 @@ addMissing fn updatefile l n
120120 if updatefile
121121 then do let fb = fn ++ "~"
122122 runIO $ writeSource fb (unlines (before ++ nonblank)
123− ++ extras ++
123+ ++ extras ++
124124 (if null extras then ""
125125 else "\n" ++ unlines rest))
126126 runIO $ copyFile fb fn
@@ -193,7 +193,7 @@ makeCase fn updatefile l n
193193 case findSubstr ('?':n) line of
194194 Just (before, pos, after) ->
195195 [before ++ (if b then "(" else "") ++ "case _ of",
196− take (pos + (if b then 6 else 5)) (repeat ' ') ++
196+ take (pos + (if b then 6 else 5)) (repeat ' ') ++
197197 "case_val => ?" ++ n ++ (if b then ")" else "")
198198 ++ after]
199199 Nothing -> fail "No such metavariable"
@@ -208,7 +208,7 @@ makeCase fn updatefile l n
208208
209209 findSubstr n xs = findSubstr' [] 0 n xs
210210
211− findSubstr' acc i n xs | take (length n) xs == n
211+ findSubstr' acc i n xs | take (length n) xs == n
212212 = Just (reverse acc, i, drop (length n) xs)
213213 findSubstr' acc i n [] = Nothing
214214 findSubstr' acc i n (x : xs) = findSubstr' (x : acc) (i + 1) n xs
@@ -217,7 +217,7 @@ makeCase fn updatefile l n
217217
218218
219219
220−doProofSearch :: FilePath -> Bool -> Bool ->
220+doProofSearch :: FilePath -> Bool -> Bool ->
221221 Int -> Name -> [Name] -> Maybe Int -> Idris ()
222222doProofSearch fn updatefile rec l n hints Nothing
223223 = doProofSearch fn updatefile rec l n hints (Just 20)
@@ -230,7 +230,7 @@ doProofSearch fn updatefile rec l n hints (Just depth)
230230 [] -> return n
231231 ns -> ierror (CantResolveAlts ns)
232232 i <- getIState
233− let (top, envlen, psnames, _)
233+ let (top, envlen, psnames, _)
234234 = case lookup mn (idris_metavars i) of
235235 Just (t, e, ns, False) -> (t, e, ns, False)
236236 _ -> (Nothing, 0, [], True)
@@ -281,7 +281,7 @@ updateMeta ('?':cs) n new
281281 (mv, []) -> if (mv == n) then new else '?' : mv
282282updateMeta ('=':'>':cs) n new = '=':'>':updateMeta cs n new
283283updateMeta ('=':cs) n new = '=':updateMeta cs n new
284−updateMeta (c:cs) n new
284+updateMeta (c:cs) n new
285285 = c : updateMeta cs n new
286286updateMeta [] n new = ""
287287
@@ -296,7 +296,7 @@ guessBrackets brack ('?':cs) n new
296296guessBrackets brack ('=':'>':cs) n new = guessBrackets False cs n new
297297guessBrackets brack ('-':'>':cs) n new = guessBrackets False cs n new
298298guessBrackets brack ('=':cs) n new = guessBrackets False cs n new
299−guessBrackets brack (c:cs) n new
299+guessBrackets brack (c:cs) n new
300300 = guessBrackets (brack || not (isSpace c)) cs n new
301301guessBrackets brack [] n new = ""
302302
@@ -308,7 +308,7 @@ checkProv line n = isProv' False line n
308308 isProv' _ ('}':cs) n = isProv' True cs n
309309 isProv' p (_:cs) n = isProv' p cs n
310310 isProv' _ [] n = False
311−
311+
312312addBracket False new = new
313313addBracket True new@('(':xs) | last xs == ')' = new
314314addBracket True new | any isSpace new = '(' : new ++ ")"
@@ -322,7 +322,7 @@ makeLemma fn updatefile l n
322322
323323 -- if the name is in braces, rather than preceded by a ?, treat it
324324 -- as a lemma in a provisional definition
325−
325+
326326 let isProv = checkProv tyline (show n)
327327
328328 ctxt <- getContext
@@ -339,7 +339,7 @@ makeLemma fn updatefile l n
339339 let skip = guessImps i (tt_ctxt i) mty
340340 let classes = guessClasses i (tt_ctxt i) mty
341341
342− let lem = show n ++ " : " ++
342+ let lem = show n ++ " : " ++
343343 constraints i classes mty ++
344344 showTmOpts (defaultPPOption { ppopt_pinames = True })
345345 (stripMNBind skip margs (delab i mty))
@@ -379,14 +379,14 @@ makeLemma fn updatefile l n
379379 where getIndent s = length (takeWhile isSpace s)
380380
381381 appArgs skip 0 _ = ""
382− appArgs skip i (Bind n@(UN c) (Pi _ _ _) sc)
382+ appArgs skip i (Bind n@(UN c) (Pi _ _ _) sc)
383383 | (thead c /= '_' && n `notElem` skip)
384384 = " " ++ show n ++ appArgs skip (i - 1) sc
385385 appArgs skip i (Bind _ (Pi _ _ _) sc) = appArgs skip (i - 1) sc
386386 appArgs skip i _ = ""
387387
388388 stripMNBind _ args t | args <= 0 = t
389− stripMNBind skip args (PPi b n@(UN c) _ ty sc)
389+ stripMNBind skip args (PPi b n@(UN c) _ ty sc)
390390 | n `notElem` skip ||
391391 take 4 (str c) == "__pi" -- keep in type, but not in app
392392 = PPi b n NoFC ty (stripMNBind skip (args - 1) sc)
@@ -399,7 +399,7 @@ makeLemma fn updatefile l n
399399 constraints i ns ty = "(" ++ showSep ", " (showConstraints i ns ty) ++ ") => "
400400
401401 showConstraints i ns (Bind n (Pi _ ty _) sc)
402− | n `elem` ns = show (delab i ty) :
402+ | n `elem` ns = show (delab i ty) :
403403 showConstraints i ns (substV (P Bound n Erased) sc)
404404 | otherwise = showConstraints i ns (substV (P Bound n Erased) sc)
405405 showConstraints _ _ _ = []
@@ -410,10 +410,10 @@ makeLemma fn updatefile l n
410410 -- Also, make type class instances implicit
411411 guessImps :: IState -> Context -> Term -> [Name]
412412 -- machine names aren't lifted
413− guessImps ist ctxt (Bind n@(MN _ _) (Pi _ ty _) sc)
413+ guessImps ist ctxt (Bind n@(MN _ _) (Pi _ ty _) sc)
414414 = n : guessImps ist ctxt sc
415415 guessImps ist ctxt (Bind n (Pi _ ty _) sc)
416− | guarded ctxt n (substV (P Bound n Erased) sc)
416+ | guarded ctxt n (substV (P Bound n Erased) sc)
417417 = n : guessImps ist ctxt sc
418418 | isClass ist ty
419419 = n : guessImps ist ctxt sc
@@ -421,11 +421,11 @@ makeLemma fn updatefile l n
421421 | ignoreName n = n : guessImps ist ctxt sc
422422 | otherwise = guessImps ist ctxt sc
423423 guessImps ist ctxt _ = []
424−
424+
425425 paramty (TType _) = True
426426 paramty (Bind _ (Pi _ (TType _) _) sc) = paramty sc
427427 paramty _ = False
428−
428+
429429 -- TMP HACK unusable name so don't lift
430430 ignoreName n = case show n of
431431 "_aX" -> True
@@ -444,7 +444,7 @@ makeLemma fn updatefile l n
444444 Just _ -> True
445445 _ -> False
446446 | otherwise = False
447−
447+
448448 isParamClass ist t
449449 | (P _ n _, args) <- unApply t
450450 = case lookupCtxtExact n (idris_classes ist) of
@@ -460,14 +460,14 @@ makeLemma fn updatefile l n
460460 isConName f ctxt = any (guarded ctxt n) args
461461-- guarded ctxt n (Bind (UN cn) (Pi t) sc) -- ignore shadows
462462-- | thead cn /= '_' = guarded ctxt n t || guarded ctxt n sc
463− guarded ctxt n (Bind _ (Pi _ t _) sc)
463+ guarded ctxt n (Bind _ (Pi _ t _) sc)
464464 = guarded ctxt n t || guarded ctxt n sc
465465 guarded ctxt n _ = False
466466
467467 blank = all isSpace
468468
469469 addLem before tyline lem lem_app later
470− = let (bef_end, blankline : bef_start)
470+ = let (bef_end, blankline : bef_start)
471471 = case span (not . blank) (reverse before) of
472472 (bef, []) -> (bef, "" : [])
473473 x -> x
@@ -481,6 +481,6 @@ makeLemma fn updatefile l n
481481 = case span (not . blank) later of
482482 (bef, []) -> (bef, "" : [])
483483 x -> x in
484− unlines $ before ++ tyline :
484+ unlines $ before ++ tyline :
485485 (later_bef ++ [blankline, lem_app, blankline] ++
486486 later_end)
src/Idris/Parser.hs+4−4
@@ -211,7 +211,7 @@ internalDecl syn
211211 declBody continue)
212212 <|> fail "End of readable input"
213213 where declBody :: Bool -> IdrisParser [PDecl]
214− declBody b =
214+ declBody b =
215215 try (instance_ True syn)
216216 <|> declBody' b
217217 <|> using_ syn
@@ -879,7 +879,7 @@ class_ syn = do (doc, argDocs, acc)
879879 where
880880 fundeps :: IdrisParser [(Name, FC)]
881881 fundeps = do lchar '|'; sepBy name (lchar ',')
882−
882+
883883 classKeyword :: IdrisParser ()
884884 classKeyword = reservedHL "interface"
885885 <|> do reservedHL "class"
@@ -906,7 +906,7 @@ InstanceName ::= '[' Name ']';
906906@
907907-}
908908instance_ :: Bool -> SyntaxInfo -> IdrisParser [PDecl]
909−instance_ kwopt syn
909+instance_ kwopt syn
910910 = do acc <- accessibility
911911 (doc, argDocs)
912912 <- try (docstring syn <* if kwopt then optional instanceKeyword
@@ -1361,7 +1361,7 @@ directive syn = do try (lchar '%' *> reserved "lib")
13611361 return [PDirective (DAutoImplicits b)]
13621362 <?> "directive"
13631363 where on_off = do reserved "on"; return True
1364− <|> do reserved "off"; return False
1364+ <|> do reserved "off"; return False
13651365
13661366pLangExt :: IdrisParser LanguageExt
13671367pLangExt = (reserved "TypeProviders" >> return TypeProviders)
src/Idris/REPL.hs+1−1
@@ -9,7 +9,6 @@ import Idris.AbsSyntax
99import Idris.ASTUtils
1010import Idris.Apropos (apropos, aproposModules)
1111import Idris.REPLParser
12−import Idris.ElabDecls
1312import Idris.Erasure
1413import Idris.Error
1514import Idris.IBC
@@ -39,6 +38,7 @@ import Idris.IBC (loadPkgIndex, writePkgIndex)
3938
4039import Idris.REPL.Browse (namesInNS, namespacesInNS)
4140
41+import Idris.ElabDecls
4242import Idris.Elab.Type
4343import Idris.Elab.Clause
4444import Idris.Elab.Data