我想用 Backus-Naur-Form 编写那些布尔表达式。
我得到的是:
<变量> ::= <信号> | <运算符> | <括号><变量>
<信号> ::= <p> | <q> | <r>| <s>
<运算符> ::= <AND> | <或> | <含义>| <等效>| <不>
<括号> ::= < ( > | < ) >
我用<括号><变量>做了一个rekursion,所以只要有一个括号,它就会启动一个新实例,但我仍然不知道什么时候关闭括号。有了这个,您可以设置一个右括号并创建一个新实例,但我只希望它用于左括号。
我可以在 <开括号> 和 <闭括号> 中分隔 <括号> 吗?我的巴库斯-瑙尔形式是否正确?互联网上关于带有布尔代数的 Backus-Naur 形式的信息并不多。这个解析树是什么样子的?