Smithy syntax for MoonBit: lossless IDL parser, traversal, diagnostics and typed JSON AST codec
test {
let r = @syntax.parse_idl(
(
#|$version: "2"
#|namespace com.foo
#|
#|string Name
#|
),
name="a.smithy",
)
inspect(r.has_errors(), content="false")
}moon add moonrockz/smithy-syntax| Package | Import path | Holds |
|---|---|---|
| span | moonrockz/smithy-syntax/span | Span, Position, SourceText |
| diagnostic | .../diagnostic | Severity, Label, Diagnostic, codes() |
| scanner | .../scanner | TokenKind, Token, Trivia, Comment, TokenStream, tokenize, unescape, text_block_value |
| ast | .../ast | the typed IDL tree |
| cst | .../cst | IdlCst, StatementCst, StatementKind |
| parser | .../parser | parse, parse_tokens, ParseResult, Version, max_nesting |
| traversal | .../traversal | NodeRef, walk, fold, reduce, reduce_pruned, accept, EventReader, push_events, Tree, TreeCursor, NodePath, kind_table |
| report | .../report | render_terminal, render_plain, render_short |
| json_ast | .../json_ast | JsonAst, shape records, parse, decode, encode, stringify |
| root | moonrockz/smithy-syntax | parse_idl, parse_json_ast, decode_json_ast, encode_json_ast, public type re-exports |
fn diagnostic_description(code : String) -> String?test {
let r = @syntax.parse_idl(
(
#|$version: "2"
#|namespace com.foo
#|
#|string Name
#|
),
name="a.smithy",
)
inspect(r.has_errors(), content="false")
}fn render_all_to(ds : ArrayView[Diagnostic], source : SourceText, logger : &Logger, color? : Bool) -> Unitfn version() -> StringInstall
Download zipSmithy syntax for MoonBit: lossless IDL parser, traversal, diagnostics and typed JSON AST codec