在项目中评估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 来构建。按优先顺序排列:
- 如果您使用某种BSD(NetBSD,OpenBSD,FreeBSD,...),这就是make(1)。
They all differ slightly. Any of them should work.
- 如果您使用 Linux 或 MacOS 并且有一个名为 bmake 的包,请使用它。
- 如果您使用 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.
- 否则,如果您使用 MacOS 并且只有一个名为 bsdmake 的包,请使用它。
It's Apple's own fork of bmake.
It should also work but it's harder for me to test.
- 如果这些都不适合您,您可以从源代码构建 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]
郑重声明:本站发布内容宗旨在传播更多信息,仅提供查阅,与本站立场无关,不拥有所有权,不承担相关法律责任。不具有任何效益,仅供参考。如果需要专业知识建议,请咨询相关专业人士。如有侵权请联系邮箱。一经查实,立即删除!