Module fluent_syntax::parser [−][src]
Fluent Translation List parsing utilities
FTL resources can be parsed using one of two methods:
parse
- parses an input into a complete Abstract Syntax Tree representation with all source information preserved.parse_runtime
- parses an input into a runtime optimized Abstract Syntax Tree representation with comments stripped.
Example
use fluent_syntax::parser; use fluent_syntax::ast; let ftl = r#" ### Resource Level Comment # This is a message comment hello-world = Hello World! "#; let resource = parser::parse(ftl) .expect("Failed to parse an FTL resource."); assert_eq!( resource.body[0], ast::Entry::ResourceComment( ast::Comment { content: vec![ "Resource Level Comment" ] } ) ); assert_eq!( resource.body[1], 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: Some( ast::Comment { content: vec!["This is a message comment"] } ) } ), );
Error Recovery
In both modes the parser is lenient, attempting to recover from errors.
The Result
return the resulting AST in both scenarios, and in the
error scenario a vector of ParserError
elements is returned as well.
Any unparsed parts of the input are returned as ast::Entry::Junk
elements.
Structs
ParserError | Error containing information about an error encountered by the Fluent Parser. |
Enums
ErrorKind | Kind of an error associated with the |
Traits
Slice |
Functions
parse | Parses an input into a complete Abstract Syntax Tree representation with all source information preserved. |
parse_runtime | Parses an input into an Abstract Syntax Tree representation with comments stripped. |
Type Definitions
Result | Parser result always returns an AST representation of the input,
and if parsing errors were encountered, a list of |