haml/
lib.rs

1mod ast;
2mod common;
3mod generator;
4mod parser;
5mod scanner;
6mod values;
7
8use ast::ToAst;
9use parser::Parser;
10use scanner::Scanner;
11
12/// Converts the Haml that is contained in a reference string
13/// into an owned string.
14///
15/// ## Example
16///
17/// ```rust
18/// use haml;
19/// let html: String = haml::to_html("%span");
20/// ```
21pub fn to_html(haml: &str) -> String {
22    let mut scanner = Scanner::new(haml);
23    let tokens = scanner.get_tokens();
24    let mut parser = Parser::new(tokens);
25    let parsed_values = parser.parse();
26    generator::to_html(&parsed_values)
27}
28
29/// Converts the Haml into an abstract syntax tree
30///
31/// ## Example
32///
33/// ```rust
34/// use haml;
35/// let ast = haml::to_ast("%span");
36/// ```
37pub fn to_ast(haml: &str) -> String {
38    let mut scanner = Scanner::new(haml);
39    let tokens = scanner.get_tokens();
40    let mut parser = Parser::new(tokens);
41    parser.parse().to_ast()
42}