如何让yylex后的代码运行
发布日期:2011-11-25 兰生客服中心 浏览:2329
下面是利用lex写的一段代码,
%%
.* printf(“hello\n”);
quit exit(0);
%%
main()
{
yylex();
printf(“bye\n”);
}
在没有彻底明白lex编译以后的文件流程的情况下,如何在程序结束时让yylex()后的printf()打印出结果呢?我们执行编译成的可执行文件会发现倘若我们只是用ctrl+c或quit退出程序是直接在当前位置退出程序,后面的printf根本不会执行。解决这个小问题,下面我用一种间接的方法实现了它:
%{
#include<setjmp.h>
#include<signal.h>
jmp_buf position;
%}
%%
quit longjmp(position,1);
.* printf(“hello\n”);
%%
main()
{
extern int function();
if(setjmp(position)==1)
goto quit;
signal(SIGINT, function);
yylex();
quit:
printf(“bye\n”);
exit(0);
}
function()
{
longjmp(position,1);
}
以上代码在AIX下调试通过
上一篇:PLC可编程逻辑器件选择方法
下一篇:高速CNC雕铣机数控系统的设计
-
Lehmann数控回转工作台的显著优势
◆紧凑且质量较轻 相对于传统数控回转工作台的一个显著优势:结构极端紧凑,功率更不逊色分好,甚至更佳。 更少的干扰边缘:(GD)-40%;(DD)-41% 可以极为方便地横向操作轴(从上方) 可以十分迅速地夹紧切割刀具:最长的耐用时间
2017-02-24 -
回转工作台的combiFlex模块化系统优势
仅4种φ100-500mm的基本型号,可以提供超过240种配置的数控回转工作台让您选择! combiFlex模块化系统优势主要表现在: 高保值性:随时适应新的要求 型号多样性:GD(大约-50%);DD(大约-50%) 每种尺寸
2017-02-20 -
pL Lehmann数控回转工作台3+2轴替代五轴机床的完整加工
用户是一家锁具和五金配件生产企业,拥有近300名员工。它主要为商业楼宇开发、生产和销售门窗及外墙的固定、操作和密封配件。 用户除了要生产出高品质门五金配件外,创新、高效、高性价比的生产是确保经济成果的另一个支柱,根据各个组件的需要,提
2017-02-20 -
实例讲解配套于高精密磨床的第四轴数控回转工作台
LapmasterWolters公司为了提高其精密磨床的生产力而配备了pL LEHMANN旋转台。高精密的表面加工当然需要高品质的工艺设备,LapmasterWolters数控外圆磨床,作为制造专用于表面精密加工的高精密磨床的国际市场领衔者
2017-02-20