博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第二章 flex输入输出结构
阅读量:5170 次
发布时间:2019-06-13

本文共 595 字,大约阅读时间需要 1 分钟。

对于一个词法分析程序,一般读取文件或者终端

一个默认lex程序大致看上去像这样

YY_BUFFER_STATE bp;extern FILE* yyin;  ... whatever the program does before the first call to the scannerif(!yyin) yyin = stdin; default input is stdin bp = yy_create_buffer(yyin,YY_BUF_SIZE );  YY_BUF_SIZE defined by flex, typically 16Kyy_switch_to_buffer(bp); tell it to use the buffer we just made yylex(); or yyparse() or whatever calls the scanner

 

1. yy_create_buffer(yyin,YY_BUF_SIZE )

创建一个缓冲区

 

2. yy_switch_to_buffer(bp);

让lex从缓冲区读取输入

 

flex输入管理的三个层次

  • 设置yyin来读取所需文件
  • 创建并使用YY_BUFFER_STATE输入缓冲区
  • 重新定义YY_INPUT

 

转载于:https://www.cnblogs.com/xzpp/p/4638119.html

你可能感兴趣的文章
洛谷P2692 覆盖 题解
查看>>
Linux下清理内存和Cache方法见下文:
查看>>
【AngularJs-模块篇-Form篇】
查看>>
支持向量基
查看>>
单链表 类
查看>>
类的组合 构造函数的用法
查看>>
ORACLE SQL:经典查询练手第三篇
查看>>
ubuntu 包管理
查看>>
java -io字符流FileWrite操作演示
查看>>
vue回到上一个位置
查看>>
UESTC_Infected Land 2015 UESTC Training for Search Algorithm & String<Problem G>
查看>>
.Net 之 RPC 框架之Hprose(远程调用对象)
查看>>
全球外贸客户资源网站总汇
查看>>
杂项-CORS:CORS(跨域资源共享)
查看>>
杨柳目-杨柳科:杨柳科
查看>>
Node.js:JXcore
查看>>
redis如何进行分库存储和选择模糊清除缓存
查看>>
spring security退出方法
查看>>
从获得字符串中获取数字
查看>>
传入一个月份获取该月的统计信息
查看>>