Skip to content

diku-dk/sml-parse

Repository files navigation

sml-parse CI

Standard ML Parser Combinator Library and Scan Utilities.

Overview of MLB files

  • lib/github.com/diku-dk/sml-parse/scan-util.mlb:

    • signature SCAN_UTIL
    • structure ScanUtil :> SCAN_UTIL
  • lib/github.com/diku-dk/sml-parse/parse.mlb:

    • signature REGION
    • signature PARSE
    • structure Region :> REGION
    • structure Parse :> PARSE
  • lib/github.com/diku-dk/sml-parse/char_token.mlb:

    • signature CHAR_TOKEN
    • structure CharToken :> CHAR_TOKEN
  • lib/github.com/diku-dk/sml-parse/simple_token.mlb:

    • signature SIMPLE_TOKEN
    • structure SimpleToken :> SIMPLE_TOKEN

Use of the package

This library is set up to work well with the SML package manager smlpkg. To use the package, in the root of your project directory, execute the command:

$ smlpkg add github.com/diku-dk/sml-parse

This command will add a requirement (a line) to the sml.pkg file in your project directory (and create the file, if there is no file sml.pkg already).

To download the library into the directory lib/github.com/diku-dk/sml-parse (along with other necessary libraries), execute the command:

$ smlpkg sync

You can now reference the mlb-file using relative paths from within your project's mlb-files.

Notice that you can choose either to treat the downloaded package as part of your own project sources (vendoring) or you can add the sml.pkg file to your project sources and make the smlpkg sync command part of your build process.

Try it!

The parser combinator library works with either MLton or MLKit.

Now write

$ smlpkg sync

Then simply write make test in your shell.

To use the MLKit as a compiler, write instead:

$ MLCOMP=mlkit make clean test

Authors

Copyright (c) 2015-2021 Martin Elsman, Martin Dybdal, University of Copenhagen.