Crate erl_pp

Source
Expand description

Erlang source code preprocessor.

§Examples

use erl_pp::Preprocessor;
use erl_tokenize::Lexer;

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

Modules§

directives
Macro directives.
types
Miscellaneous types.

Structs§

MacroCall
Macro call.
Preprocessor
Erlang source code preprocessor.

Enums§

Directive
Macro directive.
Error
Possible errors.
MacroDef
Macro definition.

Type Aliases§

Result
This crate specific Result type.