A PartiQL parser for MoonBit.
Dependencies
let statement = @syntax.parse("SELECT a FROM t WHERE a > 1")let text = @syntax.format("select a from t -- note")
// text == "SELECT a FROM t;\n-- note\n"let text = @syntax.format("select a, b from t where x = 1", width=20)
// text == "SELECT a, b\nFROM t\nWHERE x = 1;\n"let r = @syntax.parse_script_recovering("SELECT a, , b FROM t; SELECT 1")
// r.errors.length() == 1, and r.script holds both statements| Package | Content |
|---|---|
| moonrockz/partiql-syntax | parse(String) -> Statement raise ParseError, parse_script_recovering |
| moonrockz/partiql-syntax/ast | the syntax tree, Span, ParseError |
| moonrockz/partiql-syntax/lexer | lex(String) -> Array[Token], lex_recovering |
| moonrockz/partiql-syntax/parser | parse_statement, parse_expression, parse_script, parse_script_recovering |
| moonrockz/partiql-syntax/printer | print, print_script |
let source = "SELECT FROM t"
let text = try {
ignore(@syntax.parse(source))
""
} catch {
e => @syntax.render(e, source, name="query.sql")
}
// error: expected an expression, found keyword `FROM`
// --> query.sql:1:8Install
Download zipA PartiQL parser for MoonBit.
Dependencies