consumer_library_comments.tri (1318B)
1 -- Each documented public SCP source must still parse and validate as IR. 2 !import "consumers.base-source" B 3 !import "consumers.validate" V 4 !import "prelude" !Local 5 !import "io" !Local 6 7 check name = do onOk_ 8 source <- readFile (append "lib/consumer/" (append name ".scp")) 9 pure (ok (matchResult (_ _ : false) 10 (program _ : resultIsOk (V.vValidate (snd program))) 11 (B.compileBaseSource source)) t) 12 checks = do onOk_ 13 appendOk <- check "append" 14 countOk <- check "text/countLines" 15 filterOk <- check "filter" 16 findOk <- check "find" 17 foldOk <- check "fold" 18 mapOk <- check "map" 19 mapMaybeOk <- check "mapMaybe" 20 nonemptyOk <- check "nonempty" 21 pathOk <- check "pathName" 22 pathStateOk <- check "pathWithState" 23 prependOk <- check "prepend" 24 reverseOk <- check "reverse" 25 splitOk <- check "text/splitLines" 26 prefixOk <- check "stripPrefix" 27 unwrapOk <- check "unwrap" 28 wrapOk <- check "wrap" 29 pure (ok (foldl and? true [appendOk countOk filterOk findOk foldOk mapOk 30 mapMaybeOk nonemptyOk pathOk pathStateOk prependOk reverseOk splitOk 31 prefixOk unwrapOk wrapOk]) t) 32 main = io (onResult_ checks 33 (problem : putStrLn (append "consumer-library-comments-READ-FAIL: " problem)) 34 (valid : putStrLn (matchBool "consumer-library-comments-ok" 35 "consumer-library-comments-DIFFER" valid))) 36 main