@@ -33,13 +33,13 @@ import Effect (Effect)
33
33
import Effect.Console (log , logShow )
34
34
import Effect.Unsafe (unsafePerformEffect )
35
35
import Node.Process (lookupEnv )
36
- import Parsing (ParseError (..), Parser , ParserT , Position (..), consume , fail , initialPos , parseErrorMessage , parseErrorPosition , position , region , runParser )
36
+ import Parsing (ParseError (..), ParseState (..), Parser , ParserT , Position (..), consume , fail , getParserT , initialPos , parseErrorMessage , parseErrorPosition , position , region , runParser )
37
37
import Parsing.Combinators (advance , between , chainl , chainl1 , chainr , chainr1 , choice , empty , endBy , endBy1 , lookAhead , many , many1 , many1Till , many1Till_ , manyIndex , manyTill , manyTill_ , notFollowedBy , optionMaybe , sepBy , sepBy1 , sepEndBy , sepEndBy1 , skipMany , skipMany1 , try , (<?>), (<??>), (<~?>))
38
38
import Parsing.Combinators.Array as Combinators.Array
39
39
import Parsing.Expr (Assoc (..), Operator (..), buildExprParser )
40
40
import Parsing.Language (haskellDef , haskellStyle , javaStyle )
41
41
import Parsing.String (anyChar , anyCodePoint , anyTill , char , eof , match , regex , rest , satisfy , string , takeN )
42
- import Parsing.String.Basic (intDecimal , letter , noneOfCodePoints , number , oneOfCodePoints , whiteSpace )
42
+ import Parsing.String.Basic (intDecimal , letter , noneOfCodePoints , number , oneOfCodePoints , skipSpaces , whiteSpace )
43
43
import Parsing.String.Replace (breakCap , replace , replaceT , splitCap , splitCapT )
44
44
import Parsing.Token (TokenParser , makeTokenParser , token , when )
45
45
import Parsing.Token as Token
@@ -685,6 +685,22 @@ main = do
685
685
parseErrorTestPosition (string " a\n b\n c\n " *> eof) " a\n b\n c\n d\n " (Position { index: 6 , column: 1 , line: 4 })
686
686
parseErrorTestPosition (string " \t a" *> eof) " \t ab" (Position { index: 2 , column: 10 , line: 1 })
687
687
688
+ assertEqual' " skipSpaces consumes if position advancement issue #200"
689
+ { actual: runParser " " do
690
+ skipSpaces
691
+ ParseState _ _ c <- getParserT
692
+ pure c
693
+ , expected: Right true
694
+ }
695
+
696
+ assertEqual' " skipSpaces doesn't consume if no position advancement issue #200"
697
+ { actual: runParser " x" do
698
+ skipSpaces
699
+ ParseState _ _ c <- getParserT
700
+ pure c
701
+ , expected: Right false
702
+ }
703
+
688
704
log " \n TESTS number\n "
689
705
690
706
-- assert' "Number.fromString" $ Just infinity == Data.Number.fromString "Infinity"
0 commit comments