storm(1)

storm1

A language system for extensible languages

Usage

storm [options] [-l language] [path] [--] <arguments>

Launch an interactive REPL.

storm [file/directory]

storm [options] -f function

storm [options] -t/-T package

storm [options] -c expr

storm --server

storm --version

storm --help

Overview

Storm itself is a language system for extensible languages. It is bundled with two languages, the general purpose language Basic Storm and the syntax language for specifying context-free grammars. Normal usage of Storm is typically confined to the lanugage Basic Storm.

The easiest way to get started with Storm is to launch the interactive REPL:

$ storm
bs> "Testing: " + 1.toS
=> Testing: 1

To write programs, create a file, myprogram.bs for example, and write code there. It can then be loaded as follows:

$ storm myprogram.bs
bs> use myprogram
using myprogram
bs> main()
...

As the above example attempts illustrate, this loads the contents of the file into the package myprogram. That package may then be imported and functions may be executed from there. To execute the functions automatically, one can invoke storm as follows:

$ storm myprogram.bs -f myprogram.main

For larger programs, it is useful to put all files inside a directory and point storm to the directory rather than an individual file. In that case, the entire directory will be loaded as a package.

If the -i flag is not used to specify imports (as above), Storm will automatically try to execute the main function in the imported package(s). As such, the above example can be simplified further as follows:

$ storm myprogram.bs

If a double dash is present (--), then any parameters that appear after the double dash are treated as parameters to the Storm program, and are made available to the Storm program without further processing.

Options

storm recognizes the following command-line options.

-l language

Launch the interactive REPL for language. The default is to launch the bs REPL.

-f function

Execute function. The function may not require any formal parameters.

-c expr

Evaluate expr in the specified REPL.

-t package

Execute all tests in package.

-T package

Execute all tests in package and any sub-packages.

-i path

Import the directory or file path as a package in the root namespace.

-I name path

Import the directory path as a package with the name name.

-r path

Use the directory path as the root of the namespace in Storm. By default /usr/lib/storm is used.

--version

Print version information.

--server

Launch the language server. Communicates with an editor using stdin/stdout using a binary protocol.

--help

Print a summary of command-line options.

Releases

2 releases since Debian 12 (Bookworm); the text changed 1 time.

  1. 12
  2. 13

From storm-lang 0.6.28-3+b1 in Debian 13 (Trixie). Parsed by carta from the page's man source.