目标在于解释书本上的LL(1)语法分析过程(没有实用价值),不包括符合LL(1)语法检测(这个也可从生成的表中看出来),有FIRST,FOLLOW集的求得和表格的生成.程序中的类可被生成的代码使用,只需求写一个bnf语法(不支持扩展格式)的文本做为参数传递给这个程序,就能生成分析该bnf的程序.
代码是在Visual Studio里调试的,如果不是,把#include "stdafx.h"注释掉.
看代码先从demo.cpp看起,再了解几个类Cfactor,Cfactors,Crule和几个生成表过程就可以.
动手写代码能更好的理解书上的讲解,不再只是简单的一要做什么二要做什么.更形象的理解CFG和下推自动机的关系,不再是一两句.想想当年学的时候几乎是背下来的,没理解好.
如果有什么错误请指出!^^
如果能够帮助你,请帮顶!^^
LL1.h
LL1.cpp
LL1init.cpp
demo.cpp
bnfG.h
bnfG.cpp