-
Notifications
You must be signed in to change notification settings - Fork 4
Getting started
Matheus Dias de Souza edited this page May 3, 2024
·
3 revisions
Switch to nightly Rust:
rustup default nightlyInstall as3_parser in your Cargo project with cargo add as3_parser, or add this to your Cargo.toml file:
[dependencies]
as3_parser = "1"Parse programs or expressions through the ParserFacade structure of the as3_parser crate:
use as3_parser::ns::*;
// Create compilation unit
let compilation_unit = CompilationUnit::new(None, "x ** y".into());
// Parser options
let parser_options = ParserOptions::default();
// Parse through ParserFacade
let program = ParserFacade(&compilation_unit, parser_options).parse_program();In Rust, to serialize data you generally use the serde package. Add it to your project's Cargo.toml manifest with:
[dependencies]
serde = { version = "1.0", features = ["rc", "derive"] }
serde_json = "1.0"With this, you can serialize a node to a JSON with:
let json = serde_json::to_string_pretty(&node).unwrap();The parser attaches ASDoc comments to supported elements and recognizes tags beforehand, maintaining indentation of code blocks.
- Meta data can contain an ASDoc comment
- Annotatable directives can contain an ASDoc comment
- Package definitions can contain an ASDoc comment
Source location is fully available within ASDoc comments. For display texts, the location always ranges from the tag at-character to the last non whitespace character.