Sometimes, we may want to generate parsers while running our program (i.e., cargo run).
In this case, we can use rustemo-compiler (i.e., the library of rcomp) in the build script of Cargo.
First, we have to add rustemo-compiler to the build dependencies.
cargo add --build rustemo-compilerThe build-dependencies in Cargo.toml should look like this:
[build-dependencies]
rustemo-compiler = "0.6.0"Next, we create the build script, build.rs:
fn main() {
rustemo_compiler::Settings::new().process_dir().unwrap();
}For more information about the settings, please refer to rustemo_compiler::Settings.
Note that build.rs is put in the project root directory, sharing the same parent as src folder's.
Assume our grammar is called my_grammar.rustemo and is put in the folder src.
Previously, we use rcomp to generate parsers and include them in main.rs like this:
mod my_grammar;
mod my_grammar_actions;Now, we remove the two lines and include the auto-generated parsers in the following way:
rustemo::rustemo_mod!(my_grammar, "/src");
rustemo::rustemo_mod!(my_grammar_actions, "/src");The parsers will be generated automatically when we run cargo run.
📘 Back: Table of contents