#lexer #generation #processing #framework #ruleset #rules #generator

tuckey

一个易于使用的、带锈的词法分析器/解析器生成框架

8 个版本

0.1.7 2024年3月25日
0.1.6 2024年1月31日
0.1.1 2023年12月18日

#56解析器工具

Download history 103/week @ 2024-04-16

每月 343 次下载

MIT 许可证

47KB
1.5K SLoC

Tuckey

Tuckey 是基于 tuck5 的基本架构的演变,作为更传统的词法分析器-解析器生成器(移除标签和迭代处理,以更接近传统的模式匹配)。

您应通过 meta 系统与 Tuckey 交互 - 您提供字符串,Tuckey 将从中构建一组规则,这些规则用于将一些字符处理成令牌。所以

                        |  Text  |
Rule Text => Ruleset => |   \/   |
                        | Tokens |

例如,要处理不带前导零的正整数,您可以使用以下规则

nonzero = 1..9
digit = 0..9
posInt = nonzero:first & digit*

该规则将字符串 120 转换为以下令牌

{
    first:
    "1",
    {
        "2",
        "3",
        "4",
    }
}

从那里,可以使用 token.get_first_child("first").unwrap() 访问包含第一个数字的令牌。

TODO:添加元语法指南

依赖关系

~0.4–0.8MB
~20K SLoC