plex:解析器和词法分析器生成器作为Rust程序宏 源码
plex,解析器和词法分析器生成器 此板条箱提供了一些语法扩展: lexer! ,这会创建基于DFA的词法分析器,该词法分析器使用最大的munch。 它的工作原理类似于lex工具。 您编写定义令牌的正则表达式,以及从输入片段创建令牌的Rust表达式。 parser! ,这将创建LALR(1)解析器。 它的工作有点像yacc 。 您编写与上下文无关的语法,以及每个规则的表达式。 您为每个非终端提供一个Rust类型,从而允许您递归地构建AST。 它还支持跨度,为您提供方便的源位置报告。 您可以在examples/demo.rs找到一个演示。 请注意,每晚都需要Rust。 用法 首先,包括plex 。 #![feature(proc_macro_hygiene)] extern crate plex; use plex :: {lexer, parser}; 创建一个词法分析器 要定义
用户评论