#compiler #javascript-compiler #js #cli #javascript

app boa_cli

Boa is a Javascript lexer, parser and compiler written in Rust. Currently, it has support for some of the language.

5 unstable releases

0.18.0 Mar 7, 2024
0.17.3 Sep 26, 2023
0.17.1 Sep 26, 2023
0.17.0 Jul 8, 2023
0.16.0 Sep 25, 2022

#164 in Command line utilities

21 downloads per month

Unlicense OR MIT

5.5MB
104K SLoC

Boa CLI

Boa CLI is Boa's REPL implementation to execute JavaScript directly from your CLI.

Installation

boa_cli can be installed directly via Cargo.

    cargo install boa_cli

Usage

Once installed, your good to go!

To execute some JavaScript source code, navigate to the directy of your choosing and type:

    boa test.js

Or if you'd like to use Boa's REPL, simply type:

    boa

CLI Options

Usage: boa [OPTIONS] [FILE]...

Arguments:
  [FILE]...  The JavaScript file(s) to be evaluated

Options:
      --strict                        Run in strict mode
  -a, --dump-ast [<FORMAT>]           Dump the AST to stdout with the given format [possible values: debug, json, json-pretty]
  -t, --trace                         Dump the AST to stdout with the given format
      --vi                            Use vi mode in the REPL
  -O, --optimize
      --optimizer-statistics
      --flowgraph [<FORMAT>]          Generate instruction flowgraph. Default is Graphviz [possible values: graphviz, mermaid]
      --flowgraph-direction <FORMAT>  Specifies the direction of the flowgraph. Default is top-top-bottom [possible values: top-to-bottom, bottom-to-top, left-to-right, right-to-left]
      --debug-object                  Inject debugging object `$boa`
  -m, --module                        Treats the input files as modules
  -r, --root <ROOT>                   Root path from where the module resolver will try to load the modules [default: .]
  -h, --help                          Print help (see more with '--help')
  -V, --version                       Print version

Features

Boa's CLI currently has a variety of features (as listed in Options).

Features include:

  • Implemented runtime features (please note that only Console is currently implemented)
  • AST Visibility: View the compiled Boa AST (--dump-ast)
  • Tracing: Enabling a vm tracing when executing any JavaScript
  • Flowgraphs: View a generated (with various provided options)
  • Debugging: Boa's CLI comes with an implemented $boa debug object with various functionality (see documentation).

Have an idea for a feature? Feel free to submit an issue and/or contribute!

Dependencies

~22–36MB
~451K SLoC