@@ -34,7 +34,7 @@ import Effect.Console (log, logShow)
3434import Effect.Unsafe (unsafePerformEffect )
3535import Node.Process (lookupEnv )
3636import Parsing (ParseError (..), Parser , ParserT , Position (..), consume , fail , initialPos , parseErrorMessage , parseErrorPosition , position , region , runParser )
37- import Parsing.Combinators (between , chainl , chainl1 , chainr , chainr1 , choice , endBy , endBy1 , lookAhead , many , many1 , many1Till , many1Till_ , manyTill , manyTill_ , notFollowedBy , optionMaybe , sepBy , sepBy1 , sepEndBy , sepEndBy1 , skipMany , skipMany1 , try , (<?>), (<??>), (<~?>))
37+ import Parsing.Combinators (advance , between , chainl , chainl1 , chainr , chainr1 , choice , endBy , endBy1 , lookAhead , many , many1 , many1Till , many1Till_ , manyIndex , manyTill , manyTill_ , notFollowedBy , optionMaybe , sepBy , sepBy1 , sepEndBy , sepEndBy1 , skipMany , skipMany1 , try , (<?>), (<??>), (<~?>))
3838import Parsing.Expr (Assoc (..), Operator (..), buildExprParser )
3939import Parsing.Language (haskellDef , haskellStyle , javaStyle )
4040import Parsing.String (anyChar , anyCodePoint , anyTill , char , eof , match , regex , rest , satisfy , string , takeN )
@@ -1006,3 +1006,37 @@ main = do
10061006 rmap fst <$> splitCap " ((🌼)) (()())" (match balancedParens)
10071007 , expected: NonEmptyList $ Right " ((🌼))" :| Left " " : Right " (()())" : Nil
10081008 }
1009+
1010+ log " \n TESTS manyIndex\n "
1011+
1012+ assertEqual' " manyIndex 1"
1013+ { actual: runParser " aaab" $ manyIndex 0 3 (\_ -> char ' a' )
1014+ , expected: Right (Tuple 3 (' a' : ' a' : ' a' : Nil ))
1015+ }
1016+ assertEqual' " manyIndex 2"
1017+ { actual: runParser " aaaa" $ manyIndex 0 3 (\_ -> char ' a' )
1018+ , expected: Right (Tuple 3 (' a' : ' a' : ' a' : Nil ))
1019+ }
1020+ assertEqual' " manyIndex 3"
1021+ { actual: runParser " b" $ manyIndex 0 3 (\_ -> char ' a' )
1022+ , expected: Right (Tuple 0 (Nil ))
1023+ }
1024+ assertEqual' " manyIndex 4"
1025+ { actual: lmap parseErrorPosition $ runParser " ab" $ manyIndex 3 3 (\_ -> char ' a' )
1026+ , expected: Left (Position { index: 1 , line: 1 , column: 2 })
1027+ }
1028+ assertEqual' " manyIndex 5"
1029+ { actual: runParser " aaa" $ manyIndex (-2 ) (1 ) (\_ -> char ' a' )
1030+ , expected: Right (Tuple 0 (Nil ))
1031+ }
1032+
1033+ log " \n TESTS advance\n "
1034+
1035+ assertEqual' " advance 1"
1036+ { actual: runParser " aa" $ advance $ char ' a'
1037+ , expected: Right ' a'
1038+ }
1039+ assertEqual' " advance 2"
1040+ { actual: lmap parseErrorPosition $ runParser " aa" $ advance consume
1041+ , expected: Left (Position { index: 0 , line: 1 , column: 1 })
1042+ }
0 commit comments