[][src]Crate erl_pp

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

Error

This crate specific error type.

MacroCall

Macro call.

Preprocessor

Erlang source code preprocessor.

Enums

Directive

Macro directive.

ErrorKind

The list of the possible error kinds

MacroDef

Macro Definition.

Type Definitions

Result

This crate specific Result type.