Category Archives: 计算机技术

flex & bison 如何用yylval传递字符串值

flex进行scanner,将数值存入yylval。

而bison读取yylval之中的值。

神奇的yylval是int类型,如何让它存储多种类型呢?

以string为例:

需要在.l和.y的头部第一句加入:
#define YYSTYPE char*
在.l赋值的时候,要特别注意,需要拷贝字符串。
yylval = strdup(yytext); return WORD;
在.y取用的时候,直接强转就可以了。
(char*)$1
关于更优雅的实现方式,当然[......]

继续阅读

让flex中支持中文scanner

这里的flex,指的是GNU flex,用于编译器,词法解析。不是Flash哪个哈。

flex一般来说,只支持按照,但我们可以用复杂的正则表达式进行拓展,支持UTF8是木有问题的。

转载自:stackoverflow,http://stackoverflow.com/questions/9611682/flexlexer-support-for-unicode/9617585#9617585

Flex does not support Unicode. However, Fle[......]

继续阅读

python使用SSHClient(Paramiko)实现后台运行进程

继上周发现了SSHClient这个Python包,使用了几天后,现在吐糟无力。

1、不支持循环拷贝,即scp -r这种。这个也忍了吧。

2、ssh执行command后,一旦断开连接,进程马上退出……由于我的shell脚本可能要运行好几个小时,一旦网络不稳定就悲剧了。

经过多方查证,终于解决了第二个问题,其实还是用shell解决的。
nohup your_shell.sh > /dev/null 2>&1 &[......]

继续阅读

发现一神级服务……页面存为PDF

今天一朋友问我怎么把一个客户端用Javascript渲染好的页面存成pdf。。然后发现了这么一个东西。

http://www.htmltopdf.de/english/html2pdf-with-javascript/

原理是:它提供了一个HTTP Service,你给他传递你要存为pdf的页面url,它去下载、本地渲染、截图、生成pdf,再传给客户端。

使用很简单:
function getPdf(inline,url){
if(!url) url=document.l[......]

继续阅读