确实存在一种将线性语法右转换为线性语法左的算法



是否存在将线性语法右转换为相等的线性语法左的算法?

对于每一个右线性语法,都存在一个生成相同语言的等价左线性语法,反之亦然。

  • 使用语法构建FSA,识别由原始语法生成的语言
  • 将初始状态与最终状态交换
  • 反转箭头方向
  • 如果存在多个初始状态,请将它们设置为非初始状态,创建一个虚拟初始状态,并使用自发移动将其与它们链接
  • 从修改后的FSA中,使用"标准"方法获得另一种正确的线性语法
  • 将语法的每一个产生式的右侧颠倒

你应该得到一个等价的左线性语法。

最新更新