首页
看点啥
插画图片
首页 科技看点 libfsm:实践指南

libfsm:实践指南

2026-09-11 0

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

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

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

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

开始使用:

你得到:

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

建筑取决于:

构建文档取决于:

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

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

喜欢(0)

上一篇

ExifToolGui:实践指南

ExifToolGui:实践指南

下一篇没有了

猜你喜欢