前言
继词法分析后,又来到语法分析范畴。完成语法分析需要解决几个子问题,今天就完成文法左递归的消除。
没借鉴任何博客,完全自己造轮子。
开始之前
文法左递归消除程序的核心是对字符串的处理,输入的产生式作为字符串,对它的拆分、替换与合并操作贯穿始终,处理过程的逻辑和思路稍有错漏便会漏洞百出。
采用直接改写法,不理解左递归消除方法很难读懂代码。
要求
CFG文法判断
左递归的类型
消除直接左递归和间接左递归
界面
源码
import os
import tkinter as tk
import tkinter.messagebox
import tkinter.f
1