Rust 算术表达式处理:分词器、解析器与求值器
1. 分词器构建
在处理算术表达式时,首先需要将输入的表达式转换为一个个的标记(Token),这个过程由分词器(Tokenizer)完成。以下是分词器的工作规则:
- 遇到 ( 字符,生成 LeftParen 标记。
- 遇到 ) 字符,生成 RightParen 标记。
- 遇到任意数字 x ,生成 Num(x) 标记。
- 遇到文件结束符(EOF),生成 EOF 标记。
1.1 分词器的数据处理
分词器有两个公共方法:
- new() :使用用户提供的算术表达式创建一个新的分词器。
- next() :读取表达式中的字符并返回下一个标记。
以下是 new() 方法的代码:
src/parsemath/tokenizer.rs
impl<'a> Tokenizer<'a> {
pub fn new(new_expr: &'a str) -> Self {
Tokenizer {
expr: new_expr.chars().peekable(),
}
}
}
超级会员免费看
订阅专栏 解锁全文
1443

被折叠的 条评论
为什么被折叠?



