PoC for a CLI & REPL. It should be considered experimental, subject to change, etc.
In its current state, it largely exists to test parser and evaluation interfaces & types from the perspective of an external application. Probably the mietter::Diagnostic stuff should be refactored and moved to the main parser crate.
help
: print the CLI's help message and supported commandsrepl
: launches the REPLast -T<format> "<query>"
: outputs a rendered version of the parsed AST (see Visualization):<format>
:query
: the PartiQL query text
eval -E<environment file> "<query>"
: evaluate the query with the optional global environment<environment file>
: supports PartiQL values (as.env
) and Ion text files (as.ion
). See sample-env for some examples.query
: the PartiQL query text
The REPL currently assumes most of the input line is a PartiQL query, which it will attempt to parse and evaluate.
- For an invalid query, errors are pretty printed to the output.
- For a valid query,
- with no prefix, the evaluation result is pretty printed to the REPL shell
- if prefixed by
\ast
, a rendered AST tree image is printed to the output (see Visualization)
Features:
- Syntax highlighting of query input
- User-friendly error reporting
- Reading/editing
CTRL-D
/CTRL-C
to quit.
In order to use any of the Graphviz-based visualizations, you will need the graphviz libraries
installed on your machine (e.g. brew install graphviz
or similar). You will also need to build with the
visualize
feature enabled.
- Use central location for syntax files rather than embedded in this crate
- Better interaction model
- commands
- more robust editing
- etc.
- Syntax highlighting for REPL output value