Skip to content

Commit e56b5ec

Browse files
committed
Combinators.Array.many tests
1 parent 4168239 commit e56b5ec

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

test/Test/Main.purs

+29
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import Effect.Unsafe (unsafePerformEffect)
3939
import Node.Process (lookupEnv)
4040
import Parsing (ParseError(..), ParseState(..), Parser, ParserT(..), Position(..), consume, fail, getParserT, initialPos, parseErrorPosition, position, region, runParser)
4141
import Parsing.Combinators (advance, between, chainl, chainl1, chainr, chainr1, choice, empty, endBy, endBy1, lookAhead, many, many1, many1Till, many1Till_, manyIndex, manyTill, manyTill_, notFollowedBy, optional, optionMaybe, replicateA, sepBy, sepBy1, sepEndBy, sepEndBy1, skipMany, skipMany1, try, tryRethrow, (<?>), (<??>), (<~?>))
42+
import Parsing.Combinators as Combinators
4243
import Parsing.Combinators.Array as Combinators.Array
4344
import Parsing.Expr (Assoc(..), Operator(..), buildExprParser)
4445
import Parsing.Language (haskellDef, haskellStyle, javaStyle)
@@ -1232,3 +1233,31 @@ main = do
12321233
{ actual: runParser "aabbaa" aye
12331234
, expected: Right ('a' : 'a' : 'b' : 'b' : 'a' : 'a' : List.Nil)
12341235
}
1236+
1237+
do
1238+
log "\nTESTS Combinators many"
1239+
-- https://github.com/purescript-contrib/purescript-parsing/issues/234
1240+
1241+
let
1242+
failAfterConsuming :: forall a. Parser String a
1243+
failAfterConsuming = anyChar *> fail "failure"
1244+
1245+
parseErrorTestPosition
1246+
(Combinators.Array.many (char 'a' <|> failAfterConsuming))
1247+
"abc"
1248+
(Position { index: 2, line: 1, column: 3 })
1249+
1250+
parseErrorTestPosition
1251+
(Combinators.Array.many1 (char 'a' <|> failAfterConsuming))
1252+
"abc"
1253+
(Position { index: 2, line: 1, column: 3 })
1254+
1255+
parseErrorTestPosition
1256+
(Combinators.many (char 'a' <|> failAfterConsuming))
1257+
"abc"
1258+
(Position { index: 2, line: 1, column: 3 })
1259+
1260+
parseErrorTestPosition
1261+
(Combinators.many (char 'a' <|> failAfterConsuming))
1262+
"abc"
1263+
(Position { index: 2, line: 1, column: 3 })

0 commit comments

Comments
 (0)