windows 下使用lex

news/2024/11/24 20:26:26/

官网下载win flex-bison
https://sourceforge.net/projects/winflexbison/
在这里插入图片描述

解压
在这里插入图片描述
cmd到win——flex的目录
在这里插入图片描述
在这里插入图片描述
a.l文件内容


```cpp
%{  #include <stdio.h>  #include <stdlib.h>   int count = 0;  
%}   delim [" "\n\t\r]   
whitespace {delim}+   
operator \+|-|\*|\/|:=|>=|<=|#|=|<<|>>|\+\+
reservedWord int|include|main|return|using|if|namespace
delimiter [,\.;\(\)\"]
constant ([0-9])+
identfier [A-Za-z]([A-Za-z][0-9])*  
%%   
{reservedWord} {count++;printf("%d\t(rw,%s)\n",count,yytext);}  
\"[^\"]*\" {count++;printf("%d\t(ct,%s)\n",count,yytext);}
{operator} { count++;printf("%d\t(op,%s)\n",count,yytext); }  
{delimiter} {count++;printf("%d\t(de,%s)\n",count,yytext);}  
{constant} {count++;printf("%d\t(ct,%s)\n",count,yytext);}  
{identfier} {count++;printf("%d\t(id,%s)\n",count,yytext);}   
{whitespace} { /* do    nothing*/ } 
%%int main()
{yyin = fopen("input.txt","r");yylex();fclose(yyin);
}
int yywrap()
{return 1;
}

input.txt文件内容

#include<iostream>
using namespace std;
int main(){cout<<"Hello World!"<<a + b = i++;
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/221526.html

相关文章

DELL R720更新IDRAC固件

1.开机看见DELL图标之后按F10进入LIFECYCLE CONTROLLER界面&#xff0c;选择固件更新&#xff0c;并启动固件更新。 2.使将所需要更新的固件放在U盘中&#xff0c;选择本地驱动器&#xff0c;点击下一步。 3.插入U盘点击浏览后&#xff0c;选择相应固件&#xff0c;为方便使…

continue、break的用法与区别

continue、break的用法与区别&#xff08;Java语言等&#xff09; 介绍一些语言中的break、continue的用法与区别 1/5、break语句可以用于switch、for、while、do-while&#xff0c;用于结束最近一层。如果是两层循环则只能跳出最近的一层循环。 如下的例子&#xff1a; 计算0&…

Lexar雷克沙新品上市 | 这一抹白色我们称之为雷神铠 OC DDR4 UDIMM

Lexar雷克沙新品上市 | 这一抹白色我们称之为雷神铠 OC DDR4 UDIMM 从某种意义上来说&#xff0c;白色有着“永不过时且高贵纯洁”的特性&#xff0c;白色内存亦是如此&#xff0c;它的存在&#xff0c;虽不是电脑硬件领域里的新鲜物&#xff0c;但每每与白色主板搭配&#xff…

lex 常用函数

yyleng 只要扫描程序匹配标记时&#xff0c;标记的文本就存储在以空字符终止的字符串yytext中&#xff0c;而且它的长度存储在yyleng中&#xff0c;yyleng中的长度与由strlen(yytext)返回的值是相同的。 yyless() 从与规则相关的代码中调用yyless(n)&#xff0c;这条规则推回除…

Lex学习笔记——规范

lex是构建词法分析程序的工具&#xff0c;词法分析程序把随机输入流标记化&#xff08;tokenize&#xff09;&#xff0c;即&#xff0c;将它拆分成词法标记。当编写lex规范时&#xff0c;可以创建lex匹配输入所用的一套规则。每次匹配一个模式时&#xff0c;lex程序就调用你提…

32线镭神雷达跑LeGO-LOAM:3D 激光SLAM

32线镭神雷达跑LeGO-LOAM&#xff1a;3D 激光SLAM 安装LeGO-LOAM镭神雷达的相关修改LeGO-LOAM的修改修改utility.h修改imageproject.cpp Enjoy youself跑rosbag实时在线建图 序 最近老板给了个镭神的32线雷达让我搞一下3D SLAM&#xff0c;决定跑一下LeGO-LOAM。但是LeGO-LOAM…

xorl %eax, %eax

这是GNU的汇编 xorl %eax, %eax&#xff08;这句起什么作用&#xff09; 按位异或&#xff0c;相同的位置为0&#xff0c;不同的位置为1&#xff0c;eax和eax的每一位都相同&#xff0c;所以相当于清零。 movl 8(%ebp), %ecx testl %ecx, %ecx&#xff08;这句起什么作…

lex(flex)yacc(bison)

初始配置 文法分析用Flex(Lex):将数据分隔成一个个的标记token (标示符identifiers&#xff0c;关键字keywords&#xff0c;数字numbers, 中括号brackets, 大括号braces, 等等etc.)语法分析用Bison(Yacc): 在分析标记的时候生成抽象语法树. Bison 将会做掉几乎所有的这些工作, …