From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- third_party/rust/fluent-syntax/src/lib.rs | 51 +++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 third_party/rust/fluent-syntax/src/lib.rs (limited to 'third_party/rust/fluent-syntax/src/lib.rs') diff --git a/third_party/rust/fluent-syntax/src/lib.rs b/third_party/rust/fluent-syntax/src/lib.rs new file mode 100644 index 0000000000..5b9cbbfe7f --- /dev/null +++ b/third_party/rust/fluent-syntax/src/lib.rs @@ -0,0 +1,51 @@ +//! Fluent is a modern localization system designed to improve how software is translated. +//! +//! `fluent-syntax` is the lowest level component of the [Fluent Localization +//! System](https://www.projectfluent.org). +//! +//! It exposes components necessary for parsing and tooling operations on Fluent Translation Lists ("FTL"). +//! +//! The crate provides a [`parser`] module which allows for parsing of an +//! input string to an Abstract Syntax Tree defined in the [`ast`] module. +//! +//! The [`unicode`] module exposes a set of helper functions used to decode +//! escaped unicode literals according to Fluent specification. +//! +//! # Example +//! +//! ``` +//! use fluent_syntax::parser; +//! use fluent_syntax::ast; +//! +//! let ftl = r#" +//! +//! hello-world = Hello World! +//! +//! "#; +//! +//! let resource = parser::parse(ftl) +//! .expect("Failed to parse an FTL resource."); +//! +//! assert_eq!( +//! resource.body[0], +//! ast::Entry::Message( +//! ast::Message { +//! id: ast::Identifier { +//! name: "hello-world" +//! }, +//! value: Some(ast::Pattern { +//! elements: vec![ +//! ast::PatternElement::TextElement { +//! value: "Hello World!" +//! }, +//! ] +//! }), +//! attributes: vec![], +//! comment: None, +//! } +//! ), +//! ); +//! ``` +pub mod ast; +pub mod parser; +pub mod unicode; -- cgit v1.2.3