grammar - 这种语言的正确语法是什么?

标签 grammar automata

我有这种语言:

{an bm | m+n is an even number}



什么是正确的语法?

最佳答案

S -> aaS | aB | bbC | ε
B -> bbB | b
C -> bbC | ε

你看,它是一种常规语言。 'S' 代表“我们已经构建了偶数个 a 并且可能会有更多的 a”,'B' 代表“我们已经构建了奇数个 a,现在接下来是奇数个 b。 'C' 代表“我们已经构建了偶数个 a,现在接下来是偶数个 b。

ε 代表“”,空字符串

关于grammar - 这种语言的正确语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3846907/

相关文章:

automata - DFA 中的最少状态数

c++ - Boost.Spirit SQL 语法/词法分析器失败

java - ANTLR - 嵌入 Java 代码,评估之前还是之后?

python - 如何重载运算符 `in`?

java - 如何将 NFA/DFA 转换为 java?

parsing - 左递归语法中先发现后跟随的混淆

automata - 为 L = {(na(w)-nb(w)) mod 3>0} 构造 DFA

java - 在 Java 中解析 ad-hoc if/else 语法的推荐策略?

_Atomic 类型说明符和限定符之间的 C11 语法歧义

puzzle - 高尔夫代码:自动机