给定三个符号:“(”“)”和“;”
如何为满足以下条件的 S 表达式创建上下文无关语法的产生规则:
- 整个表达式嵌套在括号中,这意味着它以“(”开头并以“)”结尾。
如果从左到右读取表达式,则表达式任何位置(最后一个除外)上的开括号的数量都大于闭括号的数量。在表达式的末尾,开括号的数量应该等于闭括号。
- 括号可以以任何方式嵌套。
- 右括号必须用“;”与左括号分开。
- 最里面的括号可以包含一个“;” 或保持为空。
- “;” 不得连续发生。
任何引入的非终结符也需要使用大写字母。
语法中包含的字符串:
()
(;)
(((;)))
((;);((;)))
(();(()))
不包含在语法中的字符串。
;
(;;)
(()())
());(()
();()
;()
ε
我曾尝试使用以下语法,但我从中得到了一些错误的值,感谢任何输入/更正。
S --> (BAB)
A --> ; | ε | (A)
B --> B | A | A);(A