LR分析法由Knuth先生于1965年开发。LR分析法存在一个问题:当文法产生式变多,分析表变大之后,占用很多内存。为了接近自然语言编程,需要大量的文法产生式,有可能分析表过大,内存里放不下。
MP分析法,是multi-pass(多遍分析法)。
词法分析和语法分析仍然是分开的,语法分析按照“先乘除后加减”,分成多遍,即MP。
词法分析返回的不是经典《编译原理》中所说的符号串,而是简单的树。所以,词法分析也可以看作是一遍,和语法分析的“多遍”没有本质区别。
文法要怎么写?
level1:词法分析
level2:括号配对
level3:先乘除,E->E*E
level4:后加减,E->E+E
其中,括号配对用数数的方式完成,这需要编写专门的函数。而文法产生式,可以看作是格式化的函数。
编写函数操作树,完成分析。
标签:词法,文法,语法分析,分析法,LR,MP From: https://blog.csdn.net/proorck2019/article/details/139421694