软件构造—— 实验二 lex词法分析

实验题目:

拷贝一个C文件,将其中的关键字int替换成float。

代码:

 1 %{
 2 %}
 3 %%
 4 //表示如果是在双引号(")中(即为字符串),则照常打印,编译时请删除此注
 5 \".*\"  {printf("%s",yytext);}
 6 [^ \t\n]+ {printf("%s",yytext);}
 7 //表示如果遇到float,且附加模式是后面跟有空白符,则将float替换为double,编译时请删除此注释
 8 int/[ \t]+ {printf("float");}
 9 \n|. {printf("%s",yytext);}
10 %%
11 #pragma comment(lib,"y1.txt")
12 int main(void)
13 {
14     yyin=stdin;
15     return yylex();
16 }

截图:

原文地址:https://www.cnblogs.com/smartisn/p/12207384.html

时间: 2024-08-05 15:25:32

软件构造—— 实验二 lex词法分析的相关文章

软件构造——实验五 算符优先分析法

[实验目的] 掌握算符优先分析法的原理,利用算符优先分析法将赋值语句进行语法分析. [实验内容] (1)输入一个文法根据算符优先分析法,将表达式进行语法分析,判断一个表达式是否为算符优先文法 (2)输入一个句子进行分析 [实验要求] 1.根据文法求FIRSTVT集和LASTVT集 给定一个上下文无关文法,根据算法设计一个程序,求文法中每个非终结符的FirstVT 集和LastVT 集. 可参考算法描述如下: /*求 FirstVT 集的算法*/ PROCEDURE insert(P,a); IF

完整cmm解释器构造实践(二):词法分析

cmm是c的一个子集,保留字只有如下几个 if else while read write int real 特殊符号有如下几个 + - * / = < == <> ( ) ; { } [ ] /* */ 标识符:由数字,字母或下划线组成的字符串,且不能使关键字,第一个字母不能是数字 如果了解c很容易明白上面的是什么意思,也会明白cmm其实有的东西并不多,所以做cmm解释器相对来说比较简单. 上面的特殊符号实际上比较少,我个人实现的时候还对> >= <=等做了相关的支持

软件构造实验三-递归下降分析分析法

[实验目的] (1)掌握自上而下语法分析的要求与特点. (2)掌握递归下降语法分析的基本原理和方法. (3)掌握相应数据结构的设计方法. [实验内容] 用递归下降法编写一个语法分析程序,使之与词法分析器结合,能够根据语言的上下文无关文法,识别输入的单词序列是否文法的句子. [实验要求] 对下列文法,用递归下降分析法对任意输入的符号串进行分析: E->TG    G->+TG|-TG   G->ε T->FS    S->*FS|/FS    S->ε F->(E)

软件构造-实验1 根据状态转换图手工构造词法扫描器

实验内容 编制一个读单词过程,源程序为一个文件,读取该文件,识别出各个具有独立意义的单词,即基本保留字.标识符.常数.运算符.界符五大类.并依次输出各个单词的内部编码及单词符号自身值. 单词的内部编码如下: 1.保留字:if.int.for.while.do.return.break.continue:单词种别码为1: 2.标识符:除保留字外的以字母开头,后跟字母.数字的字符序列:单词种别码为2: 3.常数为无符号整形数:单词种别码为3: 4.运算符包括:+.-.*./.=:单词种别码为4: 5

信息安全技术实验二 网络扫描实验+ARP攻击

一.实验目的及要求 1. 了解扫描技术的工作原理: 2. 加深对网络底层的理解: 3. 掌握常用扫描工具的基本用法: 4. 学习扫描器程序设计的基本方法.(以后再补充) 二.实验环境及相关情况(包含使用软件.实验设备.主要仪器及材料等) 1.实验设备:微型计算机: 2.软件系统:Windows 7操作系统,Nmap. 三.实验内容 1. Windows平台下Nmap的安装. 2. Windows平台下Nmap的使用. 3. Windows平台下查看本地端口. 4. 端口扫描的防范. 四.实验步骤

软件工程课程——实验二

刚刚完成了实验二相关文件的提交,现在把此次实验进行一下小结. 本次实验要求采用Struts2框架 + MySQL数据库 + Eclipse本地开发环境实现一个可以进行CRUD操作的图书管理系统,并且部署到SAE云端环境. 我认为,此次实验极大程度地锻炼了学生们的抗压能力和心理承受能力. 之前的软件设计和算法以及数据结构课程都在使用C++语言,所以在进行Java Web开发时需要克服的第一个小难题就是语言.但是经过实验一表达式处理的训练,已经对Java语言形成了初步的认识,所以这点小困难可以克服.

Java实验二实验报告:java面向对象程序设计

java实验二实验报告 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计模式 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 2.完成实验.撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等).解决办法(空洞的方法如“查网络”.“问

20135234马启扬 实验二 Java面向对象程序设计

北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计  班级:1352  姓名:马启扬  学号:20135234 成绩:             指导教师:娄嘉鹏    实验日期:2015.5.7 实验密级:         预习程度:         实验时间:15:50--22:50 仪器组次:34         必修/选修: 选修            实验序号:02 实验名称:实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和T

实验报告1—’词法分析

实验一.词法分析实验 专业:商业软件工程   姓名:钟菲菲  学号:201506110191 一.        实验目的 编制一个词法分析程序 二.        实验内容和要求 输入:源程序字符串: 输出:二元组(种别,单词符号本身). 三.        实验方法.步骤及结果测试 1.      源程序名:压缩包文件(rar或zip)中源程序名词法分析.c 可执行程序名:词法分析.exe 2.      原理分析及流程图 主要总体设计问题. 3.      主要程序段及其解释: void