《编译原理》实验二
句法分析器
考虑下面的C语言子集的文法,其中<>括起来的为非终结符,粗体为终结符。
|
|
|
| ;
| ,
| ID =
|
|
|
|
|
|
|
|
|
|
| DO WHILE ( ) ;
要求:对给定的C语言程序进行句法分析,输出得到的分析树。
例如,下面的源程序代码
sum = 0.0;
x = 1.0;
while (x <= 100) sum = sum + x;
句法分析结果为
|--
|--
| |--
| | |--
| | |--
| | |--
| | | |--
| | | |-- ID
| | | |-- =
| | | |--
| | | |--
| | | |--
| | | |--
| | | |--
| | | |--
| | | |-- NUM
| | |-- ;
| |--
| |--
| |--
| | |--
| | |-- ID
| | |-- =
| | |--
| | |--
| | |--
| | |--
| | |--
| | |--
| | |-- NUM
| |-- ;
|--
|--
|-- WHILE
|-- (
|--
| |--
| |--
| |--
| |--
| | |--
| | |--
| | |--
| | |-- ID
| |-- <=
| |--
| |--
| |--
| |-- NUM
|-- )
|--
|--
|--
| |--
| |-- ID
| |-- =
| |--
| |--
| |--
| |--
| |--
| | |--
| | |--
| | |-- ID
| |-- +
| |--
| |--
| |-- ID
|-- ;