on master help sign in
WIP
a858866Jason Felice
src/Idris/Parser/Data.hs+4−4
@@ -22,8 +22,8 @@ import Control.Applicative
22import Control.Monad.State.Strict
22import Control.Monad.State.Strict
23import Data.List
23import Data.List
24import Data.Maybe
24import Data.Maybe
25−import Text.Trifecta ((<?>))
25+import Text.Megaparsec ((<?>))
26−import qualified Text.Trifecta as P
26+import qualified Text.Megaparsec as P
27
27
28{- | Parses a record type declaration
28{- | Parses a record type declaration
29Record ::=
29Record ::=
@@ -169,7 +169,7 @@ SimpleConstructorList ::=
169 ;
169 ;
170-}
170-}
171data_ :: SyntaxInfo -> IdrisParser PDecl
171data_ :: SyntaxInfo -> IdrisParser PDecl
172−data_ syn = checkDeclFixity $
172+data_ syn = (checkDeclFixity $
173 do (doc, argDocs, acc, dataOpts) <- P.try (do
173 do (doc, argDocs, acc, dataOpts) <- P.try (do
174 (doc, argDocs) <- P.option noDocs docComment
174 (doc, argDocs) <- P.option noDocs docComment
175 pushIndent
175 pushIndent
@@ -219,7 +219,7 @@ data_ syn = checkDeclFixity $
219 accData acc tyn (map (\ (_, _, n, _, _, _, _) -> n) cons')
219 accData acc tyn (map (\ (_, _, n, _, _, _, _) -> n) cons')
220 return $ PData doc argDocs syn fc dataOpts (PDatadecl tyn nfc ty cons'))
220 return $ PData doc argDocs syn fc dataOpts (PDatadecl tyn nfc ty cons'))
221 terminator
221 terminator
222− return d)
222+ return d))
223 <?> "data type declaration"
223 <?> "data type declaration"
224 where
224 where
225 mkPApp :: FC -> PTerm -> [PTerm] -> PTerm
225 mkPApp :: FC -> PTerm -> [PTerm] -> PTerm
src/Idris/Parser/Expr.hs+10−8
@@ -25,9 +25,11 @@ import Control.Monad.State.Strict
25import Data.Function (on)
25import Data.Function (on)
26import Data.List
26import Data.List
27import Data.Maybe
27import Data.Maybe
28+import qualified Text.Parser.Token as Tok
28import Text.Parser.Expression
29import Text.Parser.Expression
29import Text.Megaparsec ((<?>))
30import Text.Megaparsec ((<?>))
30import qualified Text.Megaparsec as P
31import qualified Text.Megaparsec as P
32+import qualified Text.Megaparsec.Char as P
31
33
32-- | Allow implicit type declarations
34-- | Allow implicit type declarations
33allowImp :: SyntaxInfo -> SyntaxInfo
35allowImp :: SyntaxInfo -> SyntaxInfo
@@ -1283,9 +1285,9 @@ ExprList ::=
1283listExpr :: SyntaxInfo -> IdrisParser PTerm
1285listExpr :: SyntaxInfo -> IdrisParser PTerm
1284listExpr syn = do (FC f (l, c) _) <- getFC
1286listExpr syn = do (FC f (l, c) _) <- getFC
1285 lchar '['; fc <- getFC;
1287 lchar '['; fc <- getFC;
1286− (P.try . P.token $ do (char ']' <?> "end of list expression")
1288+ (P.try . Tok.token $ do (char ']' <?> "end of list expression")
1287− (FC _ _ (l', c')) <- getFC
1289+ (FC _ _ (l', c')) <- getFC
1288− return (mkNil (FC f (l, c) (l', c'))))
1290+ return (mkNil (FC f (l, c) (l', c'))))
1289 <|> (do x <- expr (syn { withAppAllowed = False }) <?> "expression"
1291 <|> (do x <- expr (syn { withAppAllowed = False }) <?> "expression"
1290 (do P.try (lchar '|') <?> "list comprehension"
1292 (do P.try (lchar '|') <?> "list comprehension"
1291 qs <- P.sepBy1 (do_ syn) (lchar ',')
1293 qs <- P.sepBy1 (do_ syn) (lchar ',')
@@ -1467,11 +1469,11 @@ VerbatimString_t ::=
1467@
1469@
1468 -}
1470 -}
1469verbatimStringLiteral :: IdrisParser (String, FC)
1471verbatimStringLiteral :: IdrisParser (String, FC)
1470−verbatimStringLiteral = P.token $ do (FC f start _) <- getFC
1472+verbatimStringLiteral = Tok.token $ do (FC f start _) <- getFC
1471− P.try $ string "\"\"\""
1473+ P.try $ string "\"\"\""
1472− str <- P.manyTill P.anyChar $ P.try (string "\"\"\"")
1474+ str <- P.manyTill P.anyChar $ P.try (string "\"\"\"")
1473− (FC _ _ end) <- getFC
1475+ (FC _ _ end) <- getFC
1474− return (str, FC f start end)
1476+ return (str, FC f start end)
1475
1477
1476{- | Parses a static modifier
1478{- | Parses a static modifier
1477
1479
src/Idris/Parser/Ops.hs+4−3
@@ -21,9 +21,10 @@ import Control.Monad
21import Control.Monad.State.Strict
21import Control.Monad.State.Strict
22import Data.Char (isAlpha)
22import Data.Char (isAlpha)
23import Data.List
23import Data.List
24+import Data.List.NonEmpty (fromList)
24import Text.Parser.Expression
25import Text.Parser.Expression
25−import Text.Trifecta ((<?>))
26+import Text.Megaparsec ((<?>))
26−import qualified Text.Trifecta as P
27+import qualified Text.Megaparsec as P
27
28
28-- | Creates table for fixity declarations to build expression parser
29-- | Creates table for fixity declarations to build expression parser
29-- using pre-build and user-defined operator/fixity declarations
30-- using pre-build and user-defined operator/fixity declarations
@@ -50,7 +51,7 @@ table fixes
50 noFixityOperator = flip Infix AssocNone $ do
51 noFixityOperator = flip Infix AssocNone $ do
51 indentGt
52 indentGt
52 op <- P.try symbolicOperator
53 op <- P.try symbolicOperator
53− P.unexpected $ "Operator without known fixity: " ++ op
54+ P.unexpected . P.Label . fromList $ "Operator without known fixity: " ++ op
54
55
55 -- | Calculates table for fixity declarations
56 -- | Calculates table for fixity declarations
56 toTable :: [FixDecl] -> OperatorTable IdrisParser PTerm
57 toTable :: [FixDecl] -> OperatorTable IdrisParser PTerm