合肥工业大学编译原理实验报告(完整代码版)
合肥工业高校编译原理试验报告(完整代码版) 计算机与信息学院 编译原理 试验报告 专 业 班 级 信息平安13-1班 学生姓名与学号 马骏 2013211869 课程教学班号 任 课 教 师 李宏芒 试验指导老师 李宏芒 试验地点 试验楼机房 2015 ~2016 学年第 二 学期 试验1 词法分析设计 一、 试验目的 通过本试验的编程实践,使学生了解词法分析的任务,驾驭词法分析程序设 计的原理和构造方法,使学生对编译的基本概念、原理和方法有完整的和清晰的 理解,并能正确地、娴熟地运用 二、 试验要求 1、编程时留意编程风格:空行的运用、注释的运用、缩进的运用等。 2、将标识符填写的相应符号表须供应应编译程序的以后各阶段运用。 3、依据测试数据进行测试。测试实例应包括以下三个部分: u 全部合法的输入。 u 各种组合的非法输入。 u 由记号组成的句子。 4、词法分析程序设计要求输出形式: 例:输入VC++语言的实例程序: If i=0 then n++; a﹤= 3b %); 输出形式为: 单词 二元序列 类 型 位置(行,列) (单词种别,单词属性) for (1,for ) 关键字 (1,1) i ( 6,i ) 标识符 (1,2) = ( 4,= ) 关系运算符 (1,3) 12 0 ( 5,0 ) 常数 (1,4) then ( 1,then) 关键字 (1,5) n (6,n ) 标识符 (1,6) ++ Error Error (1,7) ; ( 2, ; ) 分界符 (1,8) a (6,a ) 标识符 (2,1) ﹤= (4,=“,““};//分界符表 算数运算符表 关系运算符表 string k[max];// 标识符 string ci[max];// 常数 int fjfpoint=5;//分界符表尾 int mathpoint=9;//算数运算符表尾 int cipointer=0;//常数表尾 int idpointer=0;//关键字表尾 int kpointer=0;//标识符表尾 int fjf;//0 不是分界符 1是 int rowy=1;//识别输入行位置 int rowx=