LALRPOP 高级设置 文档/教程-中文翻译 | LALRPOP Advanced setup
✏️ 铅笔开头的内容为译者添加
✏️ 翻译自 LALRPOP 教程 | 高级设置 | Advanced setup
✏️ 导航: <<[上篇-正式教程] - [目录] - [下篇-这是最后一篇]>>
✏️ 完整的中文文档(共9篇19k字): https://yuhanawa.github.io/posts/2023/57877
高级设置|Advanced setup
当你设置 LALRPOP 时, 你创建了一个 build.rs
文件, 看起来像这样:
extern crate lalrpop;
fn main() {
lalrpop::process_root().unwrap();
}
这个 process_root()
调用只是使用了默认的配置. 所以它会在*当前路径(in-place)*(在你的src
目录下)下把.lalrpop
文件转化为.rs
文件. 而且只有在 .lalrpop
文件发生改变时才会进行. 但是你也可以使用Configuration
结构来获得更精确(detailed)的控制.
比如, 想要强制在输出中使用颜色(忽略TTY设置), 你这样修改你的build.rs
.
extern crate lalrpop;
fn main() {
lalrpop::Configuration::new()
.always_use_colors() // ✏️ 添加这行
.process_current_dir();
}
在源代码树中生成|Generate in source tree
✏️ 原文为单独一页 现在将其整合为一页
在0.15版本以前, LALRPOP 是在输入文件的同一目录下生成文件. 从0.16开始, 文件生成在Cargo的输出目录.
如果你想保持以前的习惯, 你可以调用generate_in_source_tree
.
在你的配置中:
extern crate lalrpop;
fn main() {
lalrpop::Configuration::new()
.generate_in_source_tree() //✏️ 添加这行
.process();
}
对于每一个 foo.lalrpop
文件, 你可以简单地在你的源代码树中设置mod foo;
. lalrpop_mod
宏在这种模式下不是很有用.
LALRPOP 高级设置 文档/教程-中文翻译 | LALRPOP Advanced setup
http://yuhanawa.github.io/posts/2023/21239/