@@ -1,5 +1,5 @@
1{-# LANGUAGE GeneralizedNewtypeDeriving, ConstraintKinds, PatternGuards, TupleSections #-}
1{-# LANGUAGE GeneralizedNewtypeDeriving, ConstraintKinds, PatternGuards, TupleSections #-}
2−module Idris.ParseExpr where
2+module Idris.Parser.Expr where
4import Prelude hiding (pi)
4import Prelude hiding (pi)
@@ -12,8 +12,8 @@ import qualified Text.Parser.Char as Chr
12import qualified Text.Parser.Token.Highlight as Hi
12import qualified Text.Parser.Token.Highlight as Hi
14import Idris.AbsSyntax
14import Idris.AbsSyntax
15−import Idris.ParseHelpers
15+import Idris.Parser.Helpers
16−import Idris.ParseOps
16+import Idris.Parser.Ops
17import Idris.DSL
17import Idris.DSL
19import Idris.Core.TT
19import Idris.Core.TT
@@ -161,7 +161,7 @@ extension syn ns rules =
161 extensionSymbol (Symbol s) = do fc <- symbolFC s
161 extensionSymbol (Symbol s) = do fc <- symbolFC s
162 highlightP fc AnnKeyword
162 highlightP fc AnnKeyword
163 return Nothing
163 return Nothing
165 flatten :: PTerm -> PTerm -- flatten application
165 flatten :: PTerm -> PTerm -- flatten application
166 flatten (PApp fc (PApp _ f as) bs) = flatten (PApp fc f (as ++ bs))
166 flatten (PApp fc (PApp _ f as) bs) = flatten (PApp fc f (as ++ bs))
167 flatten t = t
167 flatten t = t
@@ -252,7 +252,7 @@ updateSynMatch = update
253 updTacImp ns (TacImp o st scr) = TacImp o st (update ns scr)
253 updTacImp ns (TacImp o st scr) = TacImp o st (update ns scr)
254 updTacImp _ x = x
254 updTacImp _ x = x
256 dropn :: Name -> [(Name, a)] -> [(Name, a)]
256 dropn :: Name -> [(Name, a)] -> [(Name, a)]
257 dropn n [] = []
257 dropn n [] = []
258 dropn n ((x,t) : xs) | n == x = xs
258 dropn n ((x,t) : xs) | n == x = xs
@@ -476,7 +476,7 @@ bracketed' open syn =
476 <|> try (do l <- simpleExpr syn
476 <|> try (do l <- simpleExpr syn
477 op <- option Nothing (do o <- operator
477 op <- option Nothing (do o <- operator
478 lchar ')'
478 lchar ')'
479− return (Just o))
479+ return (Just o))
480 fc0 <- getFC
480 fc0 <- getFC
481 case op of
481 case op of
482 Nothing -> bracketedExpr syn open l
482 Nothing -> bracketedExpr syn open l
@@ -584,7 +584,7 @@ runElab syn = do (FC fn (sl, sc) kwEnd) <- try (lchar '%' *> reservedFC "runElab
584 return $ PRunElab fc tm (syn_namespace syn)
584 return $ PRunElab fc tm (syn_namespace syn)
585 <?> "new-style tactics expression"
585 <?> "new-style tactics expression"
587−{- | Parses a disambiguation expression
587+{- | Parses a disambiguation expression
588Disamb ::=
588Disamb ::=
589 '%' 'disamb' NameList Expr
589 '%' 'disamb' NameList Expr
@@ -1006,7 +1006,7 @@ Pi' ::=
1009−bindsymbol opts st syn
1009+bindsymbol opts st syn
1010 = do symbol "->"
1010 = do symbol "->"
1011 return (Exp opts st False)
1011 return (Exp opts st False)
@@ -1015,7 +1015,7 @@ explicitPi opts st syn
1015 binder <- bindsymbol opts st syn
1015 binder <- bindsymbol opts st syn
1016 sc <- expr syn
1016 sc <- expr syn
1017 return (bindList (PPi binder) xt sc)
1017 return (bindList (PPi binder) xt sc)
1019autoImplicit opts st syn
1019autoImplicit opts st syn
1020 = do kw <- reservedFC "auto"
1020 = do kw <- reservedFC "auto"
1021 when (st == Static) $ fail "auto implicits can not be static"
1021 when (st == Static) $ fail "auto implicits can not be static"
@@ -1025,7 +1025,7 @@ autoImplicit opts st syn
1025 sc <- expr syn
1025 sc <- expr syn
1026 highlightP kw AnnKeyword
1026 highlightP kw AnnKeyword
1027 return (bindList (PPi
1027 return (bindList (PPi
1028− (TacImp [] Dynamic (PTactics [ProofSearch True True 100 Nothing [] []]))) xt sc)
1028+ (TacImp [] Dynamic (PTactics [ProofSearch True True 100 Nothing [] []]))) xt sc)
1030defaultImplicit opts st syn = do
1030defaultImplicit opts st syn = do
1031 kw <- reservedFC "default"
1031 kw <- reservedFC "default"
@@ -1051,7 +1051,7 @@ normalImplicit opts st syn = do
1051 constraint)
1051 constraint)
1052 else (Imp opts st False (Just (Impl False False)),
1052 else (Imp opts st False (Just (Impl False False)),
1053 Imp opts st False (Just (Impl True False)))
1053 Imp opts st False (Just (Impl True False)))
1054− return (bindList (PPi im) xt
1054+ return (bindList (PPi im) xt
1055 (bindList (PPi cl) cs sc))
1055 (bindList (PPi cl) cs sc))
1057implicitPi opts st syn =
1057implicitPi opts st syn =
@@ -1443,7 +1443,7 @@ data TacticArg = NameTArg -- ^ Names: n1, n2, n3, ... n
1443-- https://github.com/idris-lang/Idris-dev/issues/1766
1443-- https://github.com/idris-lang/Idris-dev/issues/1766
1444-- | A list of available tactics and their argument requirements
1444-- | A list of available tactics and their argument requirements
1445tactics :: [([String], Maybe TacticArg, SyntaxInfo -> IdrisParser PTactic)]
1445tactics :: [([String], Maybe TacticArg, SyntaxInfo -> IdrisParser PTactic)]
1446−tactics =
1446+tactics =
1447 [ (["intro"], Nothing, const $ -- FIXME syntax for intro (fresh name)
1447 [ (["intro"], Nothing, const $ -- FIXME syntax for intro (fresh name)
1448 do ns <- sepBy (spaced (fst <$> name)) (lchar ','); return $ Intro ns)
1448 do ns <- sepBy (spaced (fst <$> name)) (lchar ','); return $ Intro ns)
1449 , noArgs ["intros"] Intros
1449 , noArgs ["intros"] Intros
@@ -1527,7 +1527,7 @@ tactics =
1527 imp :: IdrisParser Bool
1527 imp :: IdrisParser Bool
1528 imp = do lchar '?'; return False
1528 imp = do lchar '?'; return False
1529 <|> do lchar '_'; return True
1529 <|> do lchar '_'; return True
1532tactic :: SyntaxInfo -> IdrisParser PTactic
1532tactic :: SyntaxInfo -> IdrisParser PTactic
1533tactic syn = choice [ do choice (map reserved names); parser syn
1533tactic syn = choice [ do choice (map reserved names); parser syn
@@ -1550,4 +1550,3 @@ fullTactic :: SyntaxInfo -> IdrisParser PTactic
1550fullTactic syn = do t <- tactic syn
1550fullTactic syn = do t <- tactic syn
1552 return t
1552 return t