STORM(1)

πŸ“¦
version 0.8.1 Β· 3 versions
, in debian trixie, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– STORM(1) πŸ’–

okay bestie, welcome to storm(1) β€” the manual page for storm, a language system for extensible languages. yes, that's the whole vibe. she's a whole language system. πŸ’…


✨ NAME ✨

storm β€” a language system for extensible languages 🌈


πŸ¦‹ SYNOPSIS πŸ¦‹

storm [options] [-l language] [path] [--] <arguments>
                                                    Launch an interactive REPL.
storm [file/directory]
                                       Import file as package, try to run main.
storm [options] -f function
                                                       Run a function and exit.
storm [options] -t/-T package
                                   Run tests in the specified package and exit.
storm [options] -c expr
                                         Evaluate the expression expr and exit.
storm --server
                                                     Start the language server.
storm --version
                                            Print version information and exit.
storm --help
                                   Print help on command-line options and exit.

like… there are so many ways to summon her. pick your fighter. πŸ‘‘


🌸 DESCRIPTION 🌸

so. Storm itself is a language system for extensible languages. she ships bundled with two languages: Basic Storm, the general purpose one, and the syntax language for specifying context-free grammars. but real talk? most of the time you're just gonna be living in Basic Storm. that's the main character. periodt.

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

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

look at her go. "Testing: " + 1.toS β†’ Testing: 1. ate. πŸ”₯

To write actual programs, you make a file β€” myprogram.bs, for example β€” and write code in there. Then you can load it like this:

$ 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. And if you want the functions to run automatically, no manual typing, you can invoke storm like this:

$ storm myprogram.bs -f myprogram.main

For larger programs, it is useful to put all files inside a directory and point storm at the directory rather than an individual file. In that case, the entire directory gets loaded as a package. one directory, one package, so clean. 🧚

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). so the example above can be simplified even further:

$ storm myprogram.bs
lowkey iconic behavior ngl.

And 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. no meddling. she just hands them over. 🫢


πŸ’… 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. (so don't come at her with arguments, she's not taking them 😭)
  • -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. thorough queen. πŸ‘‘
  • -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.

⭐ SEE ALSO ⭐

For further information about Storm, see: https://storm-lang.org/ 🌐


okay that's the whole page bestie, you're officially a storm girlie now. go launch a REPL and slay. πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈπŸ’…πŸ«Ά

this was the STORM(1) page from the General Commands Manual, dated October 15 2023. mwah, bye. πŸ’œ

πŸ“¦ where this page comes from