wat_parser

Crates.iowat_parser
lib.rswat_parser
version0.5.0
created_at2024-11-30 04:17:25.046248+00
updated_at2025-05-14 07:23:52.252009+00
descriptionWebAssembly Text Format concrete syntax tree parser.
homepage
repositoryhttps://github.com/g-plane/wasm-language-tools
max_upload_size
id1466289
size94,317
Pig Fang (g-plane)

documentation

README

The parser for WebAssembly Text Format.

This parser is error-tolerant, which means it can parse even even if the input contains syntax errors.

This parser will produce concrete syntax tree (CST), but you can build AST from it with a bunch of helpers from wat_syntax::ast module.

Usage

Use the main [parse] function:

use wat_syntax::SyntaxKind;

let input = "(module)";
let (tree, errors) = wat_parser::parse(input);
assert_eq!(tree.kind(), SyntaxKind::ROOT);

Any syntax errors won't prevent the parser from parsing the rest of the input, so the [parse] function returns a tuple which contains the CST and syntax errors. You can access syntax errors like this:

use wat_syntax::SyntaxKind;

let input = "(module";
let (tree, errors) = wat_parser::parse(input);
assert_eq!(errors[0].start, 7);
assert!(errors[0].message.to_string().contains("expected `)`"));
Commit count: 735

cargo fmt