- command-line options to select target and specify options
- build executable using either SML/NJ or MLton
- configuration and makefiles
- conditional mechanism for using a single grammar specification to specify multiple language variants (e.g., SML/NJ and MLton have different syntax extensions)