@@ -34,7 +34,7 @@ import Effect.Console (log, logShow)
34
34
import Effect.Unsafe (unsafePerformEffect )
35
35
import Node.Process (lookupEnv )
36
36
import 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 , (<?>), (<??>), (<~?>))
38
38
import Parsing.Expr (Assoc (..), Operator (..), buildExprParser )
39
39
import Parsing.Language (haskellDef , haskellStyle , javaStyle )
40
40
import Parsing.String (anyChar , anyCodePoint , anyTill , char , eof , match , regex , rest , satisfy , string , takeN )
@@ -1006,3 +1006,37 @@ main = do
1006
1006
rmap fst <$> splitCap " ((🌼)) (()())" (match balancedParens)
1007
1007
, expected: NonEmptyList $ Right " ((🌼))" :| Left " " : Right " (()())" : Nil
1008
1008
}
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