Skip to content

Commit 945d16b

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

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+
log "\nTESTS Combinators many"
1238+
-- https://github.com/purescript-contrib/purescript-parsing/issues/234
1239+
1240+
do
1241+
let
1242+
failAfterConsuming :: 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)