1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//! Erlang source code preprocessor.
//!
//! # Examples
//!
//! ```
//! # extern crate erl_pp;
//! # extern crate erl_tokenize;
//! use erl_pp::Preprocessor;
//! use erl_tokenize::Lexer;
//!
//! # fn main() {
//! let src = r#"-define(FOO(A), {A, ?LINE}). io:format("Hello: ~p", [?FOO(bar)])."#;
//! let pp = Preprocessor::new(Lexer::new(src));
//! let tokens = pp.collect::<Result<Vec<_>, _>>().unwrap();
//!
//! assert_eq!(tokens.iter().map(|t| t.text()).collect::<Vec<_>>(),
//! ["io", ":", "format", "(", r#""Hello: ~p""#, ",",
//! "[", "{", "bar", ",", "1", "}", "]", ")", "."]);
//! # }
//! ```
//!
//! # References
//!
//! - [Erlang Reference Manual -- Preprocessor](http://erlang.org/doc/reference_manual/macros.html)
//!
pub use crateDirective;
pub use crateError;
pub use crate;
pub use cratePreprocessor;
/// This crate specific `Result` type.
pub type Result<T> = Result;