@@ -24,7 +24,7 @@ import Data.String.CodeUnits as SCU
24
24
import Data.String.Regex.Flags (RegexFlags , ignoreCase , noFlags )
25
25
import Data.Tuple (Tuple (..))
26
26
import Effect (Effect )
27
- import Effect.Console (logShow )
27
+ import Effect.Console (log , logShow )
28
28
import Partial.Unsafe (unsafePartial )
29
29
import Test.Assert (assert' )
30
30
import Parsing (ParseError (..), Parser , ParserT , fail , parseErrorMessage , parseErrorPosition , position , region , runParser )
@@ -106,7 +106,6 @@ mkRegexTest input expected pattern flags pars =
106
106
Left err -> assert' (" error: " <> show err) false
107
107
Right p -> parseTest input expected $ pars p
108
108
109
-
110
109
-- TODO everything is stack-safe now.
111
110
--
112
111
-- This test doesn't test the actual stack safety of these combinators, mainly
@@ -574,6 +573,7 @@ javaStyleTest = do
574
573
main :: Effect Unit
575
574
main = do
576
575
576
+ log " \n TESTS String\n "
577
577
parseErrorTestPosition
578
578
(many $ char ' f' *> char ' ?' )
579
579
" foo"
@@ -682,6 +682,8 @@ main = do
682
682
parseErrorTestPosition (string " a\n b\n c\n " *> eof) " a\n b\n c\n d\n " (Position { column: 1 , line: 4 })
683
683
parseErrorTestPosition (string " \t a" *> eof) " \t ab" (Position { column: 10 , line: 1 })
684
684
685
+ log " \n TESTS number\n "
686
+
685
687
parseTest " Infinity" infinity number
686
688
parseTest " +Infinity" infinity number
687
689
parseTest " -Infinity" (negate infinity) number
@@ -696,6 +698,7 @@ main = do
696
698
parseTest " -6.0" (-6.0 ) number
697
699
parseTest " +6.0" (6.0 ) number
698
700
701
+ log " \n TESTS Operator\n "
699
702
-- test from issue #161
700
703
-- all the below operators should play well together
701
704
parseErrorTestMessage
@@ -764,18 +767,23 @@ main = do
764
767
-- TODO This shows the current limitations of the number parser. Ideally this parse should fail.
765
768
parseTest " 1..3" 1.0 $ number <* eof
766
769
770
+ log " \n TESTS intDecimal\n "
767
771
parseTest " -300" (-300 ) intDecimal
768
772
769
- mkRegexTest " regex-" " regex" " regex" noFlags (\p -> p <* char ' -' <* eof)
770
- mkRegexTest " -regex" " regex" " regex" noFlags (\p -> char ' -' *> p <* eof)
773
+ log " \n TESTS Regex\n "
774
+ mkRegexTest " regex-" " regex" " regex" noFlags (\regex -> regex <* char ' -' <* eof)
775
+ mkRegexTest " -regex" " regex" " regex" noFlags (\regex -> char ' -' *> regex <* eof)
771
776
mkRegexTest " regexregex" " regexregex" " (regex)*" noFlags identity
772
777
mkRegexTest " regexregex" " regex" " (^regex)*" noFlags identity
773
778
mkRegexTest " ReGeX" " ReGeX" " regex" ignoreCase identity
774
779
mkRegexTest " regexcapregexcap" " regexcap" " (?<CaptureGroupName>regexcap)" noFlags identity
775
780
mkRegexTest " regexcapregexcap" " regexcap" " (((?<CaptureGroupName>(r)e(g)excap)))" noFlags identity
776
781
782
+ log " \n TESTS Stack Safe Loops\n "
777
783
stackSafeLoopsTest
778
784
785
+ log " \n TESTS Token Parser\n "
786
+
779
787
tokenParserIdentifierTest
780
788
tokenParserReservedTest
781
789
tokenParserOperatorTest
@@ -808,18 +816,23 @@ main = do
808
816
tokenParserCommaSepTest
809
817
tokenParserCommaSep1Test
810
818
819
+ log " \n TESTS Haskell Style\n "
811
820
haskellStyleTest
821
+ log " \n TESTS Java Style\n "
812
822
javaStyleTest
813
823
814
- case runParser " aa" p of
815
- Right _ -> assert' " error: ParseError expected!" false
816
- Left (ParseError message _) -> do
817
- let messageExpected = " context1 context2 Expected \" b\" "
818
- assert' (" expected message: " <> messageExpected <> " , message: " <> message) (message == messageExpected)
819
- logShow messageExpected
820
- where
821
- prependContext m' (ParseError m pos) = ParseError (m' <> m) pos
822
- p = region (prependContext " context1 " ) $ do
823
- _ <- string " a"
824
- region (prependContext " context2 " ) $ do
825
- string " b"
824
+ log " \n TESTS region\n "
825
+ ( let
826
+ prependContext m' (ParseError m pos) = ParseError (m' <> m) pos
827
+ p = region (prependContext " context1 " ) $ do
828
+ _ <- string " a"
829
+ region (prependContext " context2 " ) $ do
830
+ string " b"
831
+ in
832
+ case runParser " aa" p of
833
+ Right _ -> assert' " error: ParseError expected!" false
834
+ Left (ParseError message _) -> do
835
+ let messageExpected = " context1 context2 Expected \" b\" "
836
+ assert' (" expected message: " <> messageExpected <> " , message: " <> message) (message == messageExpected)
837
+ logShow messageExpected
838
+ )
0 commit comments