编译原理实验---语法分析器
编译原理实验—语法分析器 一、算术表达式文法 VN = { E, T, E’, F, T’ } 其中:E为开始符号; VT = { +, -, , /, (, ), id, num } 其中:id代表标识符,要求是长度不超过10的字母序列;num代表常数,要求是正整数; 文法规则集如下: E→TE’ E’→+TE’| -TE’ |ε T→FT’ T’→ FT’| /FT’ |ε F→(E) | id | num 二、文法中每个非终结符的First集和Follow集 三、由产生式F→(E) | id | num构造的递归下降分解程序示例: PROCEDURE F IF SYM = ` id ` THEN ADVANCE ELSE IF SYM = ` num ` THEN ADVANCE ELSE IF SYM = ` ( ` THEN BEGIN ADVANCE ; E IF SYM = ` ) ` THEN ADVANCE ELSE ERROR END ELSE ERROR 其中,SYM代表输入串指针所指的符号;ADVANCE代表把输入指针调至下一输入符号。 四、程序代码 # include <iostream> # include <stdio.h> # include <cctype> # include <string.h> # include <iomanip> #