tricu

An interpreted language for exploring Tree Calculus
Log | Files | Refs | README | LICENSE

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