0

给定三个符号:“(”“)”和“;”

如何为满足以下条件的 S 表达式创建上下文无关语法的产生规则:

  • 整个表达式嵌套在括号中,这意味着它以“(”开头并以“)”结尾。

如果从左到右读取表达式,则表达式任何位置(最后一个除外)上的开括号的数量都大于闭括号的数量。在表达式的末尾,开括号的数量应该等于闭括号。

  • 括号可以以任何方式嵌套。
  • 右括号必须用“;”与左括号分开。
  • 最里面的括号可以包含一个“;” 或保持为空。
  • “;” 不得连续发生。

任何引入的非终结符也需要使用大写字母。

语法中包含的字符串:

()
(;)
(((;)))
((;);((;)))
(();(()))

不包含在语法中的字符串。

;
(;;)
(()())
());(()
();()
;()
ε

我曾尝试使用以下语法,但我从中得到了一些错误的值,感谢任何输入/更正。

S --> (BAB)

A --> ; | ε | (A)

B --> B | A | A);(A
4

1 回答 1

0

答案:

S->(T)|(;)|()
T->(T)|T;T|()|(;)
于 2014-12-28T12:04:32.443 回答