如何让yylex后的代码运行

原创 2004年02月25日 10:23:00

下面是利用lex写的一段代码,

%%

.* printf(“hello/n”);

quit exit(0);

%%

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

main()

{

  yylex();

  printf(“bye/n”);

}

在没有彻底明白lex编译以后的文件流程的情况下,如何在程序结束时让yylex()后的printf()打印出结果呢?我们执行编译成的可执行文件会发现倘若我们只是用ctrl+cquit退出程序是直接在当前位置退出程序,后面的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下调试通过

Python -- 让你的代码运行的更快的技巧

注:原文地址 Python: faster way 注:个人学习记录用。建议大家看原文,原文对比更加清晰,一目了然。 注:各位要使用这些技巧的话,请在自己的服务器上测试一遍,并且加...
  • cangdu
  • cangdu
  • 2015年01月05日 19:17
  • 299

编译原理—yylex学习笔记

yyleng 只要扫描程序匹配标记时,标记的文本就存储在以空字符终止的字符串yytext中,而且它的长度存储在yyleng中,yyleng中的长度与由strlen(yytext)返回的值是相同的。 ...
  • EmilSinclair4391
  • EmilSinclair4391
  • 2016年05月21日 10:58
  • 521

让python代码运行的更快

原文地址:http://infiniteloop.in/blog/quick-python-performance-optimization-part-i/ 往往小的改变却能带来大的性能提升, 下面说...
  • ws_cs_dn
  • ws_cs_dn
  • 2014年08月06日 14:43
  • 421

【Python】学习笔记——-7、Python代码运行助手

Python代码运行助手可以让你在线输入Python代码,然后通过本机运行的一个Python脚本来执行代码。原理如下: 在网页输入代码: 点击Run按钮,代码被发送到本机正...
  • singit
  • singit
  • 2017年02月06日 22:43
  • 1828

可重入的词法和语法分析

因为富文本过滤器要以php extension的形式安装到线程安全的apache+php环境中,因此过滤器必须是可重入的(Reentrant)。 bison + flex因为要兼容老的yacc+lex...
  • onisman
  • onisman
  • 2010年03月02日 20:29
  • 288

优化代码,看看哪个执行速度更快!!!

优化代码,看看哪个执行速度更快!!!         最近我编写一个小程序,其用一个函数将 A,B 值互换,因为该函数调用频繁,于是对其优化,以下有三个版本,请试试看Rev1, Rev2, Rev3三...
  • bhbcsdn
  • bhbcsdn
  • 2004年09月01日 08:49
  • 881

Ext.MessageBox.hide与alert会阻塞程序的执行,而Ext版的alert是异步执行

.() 把显示着的当前message box隐藏起来。.Ext.MessageBox.alert()方法有四个参数:alert( title , msg , function(){} ,this)...
  • cruelchen
  • cruelchen
  • 2013年07月12日 10:47
  • 606

Python代码运行助手

将下述demo文件保存下来,比如存为learning.py 然后运行,如果出现: Ready for Python code on port 39093... 则说明成功了。 demo #...
  • zyq522376829
  • zyq522376829
  • 2015年06月26日 22:54
  • 8159

《追踪LINUX TCP/IP代码运行》(保存本书的目录啦)

点击查看北航出版社《追踪LINUX TCP/IP代码运行》情况介绍       转眼一年过去了,经过艰难而漫长的审稿、校稿之后,大家期待多时的《追踪LINUX TCP/IP代码运行》终于出版了,在这里...
  • myth_liu
  • myth_liu
  • 2010年06月20日 20:34
  • 1119

W3C上面的运行代码按钮

W3C上面的运行代码按钮文章内容的主要结构如下 我和W3C 代码的实时预览 实现原理 挑战编辑 总结 我和W3C对于开发者尤其是急性子的开发者,有时候想要查找并验证某个前端属性的效果 必须要先自己写一...
  • qq_34009967
  • qq_34009967
  • 2017年12月29日 16:36
  • 112
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何让yylex后的代码运行
举报原因:
原因补充:

(最多只允许输入30个字)