详情

首页手游攻略 libfsm:实践指南

libfsm:实践指南

佚名 2026-09-12 13:00:01

在项目中评估libfsm,可以先看清用途边界:DFA 正则表达式库和朋友。对日常自动化任务来说,输入边界、依赖和失败处理如果不清楚就很难稳定复用往往决定它能否落地,不能只用安装成功来判断。我的评估方法是用一项范围明确的真实任务完成最小试跑,然后检查配置时间、输出质量、异常信息和维护痕迹是否与文档一致。对愿意先做小范围验证并复查原始文档的团队来说,这个仓库值得继续验证;只求即装即用的人则要先看维护成本。

libfsm 和朋友:NFA、DFA、正则表达式和词法分析

; re -cb -pl 点 '[Ll]ibf+(sm)*' '[Ll]ibre' | 点

libfsm 不是其他正则表达式引擎的直接替代品,它仅支持可编译为确定性 FSMs 的模式。作为回报,支持的模式以线性时间运行。

开始使用:

  • 请参阅 教程介绍 快速概览 re(1) 命令行界面的。
  • 典型应用的编译阶段 它将正则表达式编译为代码。
  • 关于使用 libfsm 的建议 有关编译时间、不支持的功能、常见使用模式和示例的建议。

你得到:

  • libfsm — 用于操作 FSM 的库(NFA 和 DFA)
  • libre — 用于将正则表达式编译为 NFA 的库
  • fsm(1) — FSM 的命令行界面
  • re(1) — 正则表达式的命令行接口
  • rx(1) — 用于编译正则表达式集的命令行界面
  • lx(1) — 词法分析器生成器

lx 试图创造一个简单、富有表现力且不引人注目的 词法分析器生成器擅长词法分析,只进行词法分析, 与语言无关,并且没有其他功能。

从源头构建

使用子模块克隆(包含所需的 .mk 文件):

; git clone --recursive https://github.com/katef/libfsm.git

构建和安装:

; bmake -r
; bmake -r install

您可以覆盖一些内容:

; CC=clang bmake -r
; PREFIX=$HOME bmake -r install

运行测试:

; bmake -r LX=./build/bin/lx test

你需要 bmake 来构建。按优先顺序排列:

  1. 如果您使用某种BSD(NetBSD,OpenBSD,FreeBSD,...),这就是make(1)。 They all differ slightly. Any of them should work.
  2. 如果您使用 Linux 或 MacOS 并且有一个名为 bmake 的包,请使用它。
  3. 如果您使用 Linux 并且有一个名为 pmake 的包,请使用它。 It's the same thing. Some package managers have bmake packaged under the name pmake. I don't know why they name it pmake.
  4. 否则,如果您使用 MacOS 并且只有一个名为 bsdmake 的包,请使用它。 It's Apple's own fork of bmake. It should also work but it's harder for me to test.
  5. 如果这些都不适合您,您可以从源代码构建 bmake。 You don't need mk.tar.gz, just bmake.tar.gz. This will always work. https://www.crufty.net/help/sjg/bmake.html

当您在上面的构建说明中看到“bmake”时,它表示其中任何一个。

要在不构建文档的情况下安装:

; CC=clang PREFIX=$HOME pmake -r -DNODOC install

建筑取决于:

  • 任何 BSD 品牌。
  • 一个 C 编译器。任何都可以,但最好支持 GCC 和 clang。
  • ar、ld 以及其他一些您可能已经拥有的东西。
  • bmake -r test 的 xmllint(打包为 libxml2-utils)

构建文档取决于:

  • xsltproc(1)
  • Docbook XSLT(及其 XML 目录条目,打包为 docbook-xsl 和 docbook-xml)

模糊测试依赖于基于盗窃属性的测试库:

  • https://github.com/silentbicycle/theft
    目前测试基于 libtheft 0.4.2 API。

想法、评论或错误:[email protected]

点击查看更多
推荐专题
热门阅读