令 \(0,1,2,3,4\) 分别表示「程序片段」「语句」「语句块」「函数」「值」,把它们之间的转移关系画出来如下图:
首先整个图可以看做一个 \(0\to 2\to 1\) 的环,这三步是必经的。
因为空串是「程序片段」,所以 \(1\to 0\) 这一步从整体上看是把若干个「语句」接起来,每次套上一个大括号。
因为大括号只有 \(0\to 2\) 这一步有,所以无需考虑外部算重的问题,只需考虑合成「语句」的过程是否会算重。
走 \(2\to 1\) 显然不会算重,因为 \(2\to 3\to 4\to 1\) 会强制加上一些东西。而 \(2\to 3\) 和 \(4\to 1\) 也都是强制性的,并且 \(2\to 3\) 的东西是加在左边的,\(3\to 4\) 加小括号的情况是加在右边的,\(4\to 1\) 的分号是独一无二的,也都不会算重。所以唯一会算重的地方就是在 \(3\) 那里自己嵌套了一些小括号,然后不加任何东西到 \(4\),又嵌套了一些小括号。
注意单独一个分号也是语句,所以要把长度为 \(0\) 和 \(1\) 的都初始化好。
标签:语句,会算重,算重,EER2,小括号,P6103,溢出 From: https://www.cnblogs.com/landsol/p/17775401.html