如何将 (ab u aab u aba)* 转换为 NFA?
(ab u aab u aba)* 我做到了,但我想要一些关于其正确性的反馈: 如果正确:我们可以进一步简化 (ab u aab u aba)* 吗? 如果没有:我错过了什么? 编…
如何简化令牌预测 DFA?
Lexer DFA 导致“代码太大”错误 我正在尝试使用 ANTLR 3 解析 Java 服务器页面。Java 对单个方法的字节代码有 64k 的限制,并且我不断遇到“代码太大…
用于将多个正则表达式与多个字符串的优先级进行匹配的Java工具
我有无限的字符串序列和大量按优先级排序的正则表达式。对于序列中的每个字符串,我必须找到第一个匹配的正则表达式和匹配的子字符串。字符串不是很长…
DFA 最小化 Brzozowski 算法
我正在尝试实现 Brzozowski 算法来最小化我的 DFA 以下是相同的算法。 DFA = d(r(d(r(NFA)))) 其中,r() 是 NFA 的反转,D() 将 NFA 转换为 DFA。 但…
NFA 到 DFA 的转换,其语言是 L(A) 的补集
有人可以帮我解决这个问题吗? 描述一种将 NFA 转换为 DFA 的算法,其语言是 L(A) 的补集。补码应该根据 A 的字母表来考虑。给出一个关于为什么你的构…
ANTLR中自动生成的DFA字符串,例如eotS、eofS、acceptS是什么意思以及它们是如何生成的
当我从语法文件中使用 antlr 生成词法分析器时,我注意到它生成了一系列十六进制格式的字符串。 DFA 使用这些字符串来预测下一个标记是什么。 这些字…
我说得对吗? (有限自动机)
我得到了一个正则表达式,我应该将其转换为 NFA,然后转换为 DFA。这是正则表达式: a ( b | c )* a | aac* b 然后我使用 Thomson 算法将其转换为 NFA…