Blogs
Antlr的Unicode支持
由 gougou 于 星期三, 2005-08-24 14:11 发表.-noscript-blocked { border: 1px solid red !important; background: white url("chrome://noscript/skin/icon32.png") no-repeat left top !important; opacity: 0.6 !important; }
Antlr从2.72起开始提供了完善的Unicode支持,首先设置charVocabulary选项,指定Unicode范围,注意antlr不支持\uFFFF,因为这个值对应于-1,被antlr用来标示结尾字符了。
在VC多线程中操作MFC界面
由 gougou 于 星期二, 2005-08-23 11:44 发表在VC中,MFC的界面不是线程安全的,我们不能在工作线程中直接操作界面,同时MFC中也没有提供类似于Delphi的VCL的Lock方法,要想在线程中修改界面状态,通常来说是通过发消息来实现的.
有些时候,我们可以用WM_Timer消息处理来模拟多线程的运行效果,因为WM_Timer的消息处理是一个伪多线程,其实是在主线程中运行的,所以可以直接操作界面,但是同多线程的最大区别就是当界面执行一个长周期的堵塞操作时,WM_Timer消息处理函数根本不会被执行,而线程则不会有这样的问题。
追看的小说目录
由 gougou 于 星期日, 2005-08-21 23:31 发表装了一个SubVersion
由 gougou 于 星期五, 2005-08-19 16:32 发表感觉SubVersion的安装还是挺简单的
- 先建立一个路径,比如d:\SecureLayer
- 安装TortoiseSvn,在资源管理器中选中指定的目录,用右键菜单创建一个Repository。我选的是标准的文件系统模式。
- 在D:\SecureLayer目录下自动建立的Conf子目录中有一个svnseve.conf文件,修改为如下:
[general]
anon-access = read
auth-access = write
password-db = passwd
# realm = My First Repository
然后编辑passwd文件,指定用户及其访问密码 - 然后选中要导入的代码目录,比如SL\SecureLayer,Import进Repository。
- 这样建好的只能在本机使用,要想让人能通过web访问Subversion的Repository,需要启动svnserve的守候进程,命令行示意 svnserve -d -r d:\SecureLayer,启动服务后,就可以通过svn://192.168.1.xx/SecureLayer Url来导出代码了
- 要想在VS2003中方面对代码进行管理,需要安装AnkhSVN插件,装好后点击Tool | AnkhSVN的Check-out命令就可以从建好的Repository中签出代码了.
- 签出代码后,使用VS打开相应的项目,AnkhSVN会自动提示是否同项目绑定,绑定后就可以通过各种插件的快捷菜单对代码进行管理了.
Antlr语法文件的一些常用配置选项
由 gougou 于 星期三, 2005-08-03 14:49 发表.-noscript-blocked { border: 1px solid red !important; background: white url("chrome://noscript/skin/icon32.png") no-repeat left top !important; opacity: 0.6 !important; }
- 要想在生成的cpp代码中添加一些预定义的头文件,可以使用Header语法定义,示意如下
header {
#include <iostream> // if you want to use some cout's in the actions
ANTLR_USING_NAMESPACE(std)
ANTLR_USING_NAMESPACE(antlr)
// Global header ends here
}
XWindows的API有点恶心
由 gougou 于 星期三, 2005-08-03 14:32 发表发布Sqlite Developer 0.55
由 gougou 于 星期日, 2005-07-31 17:23 发表发布Sqlite Developer 0.55
特点
+可视化查询创建器
+数据库Database Schema设计器
+支持数据导出为word, xml, html, csv, excel
antlr之Hello World
由 gougou 于 星期五, 2005-07-29 09:57 发表最近要写一个SQL的Parser,因此需要一个Parser代码生成器,以前用过Lex 和 Yacc,但是缺点是生成的代码可读性非常差,而且生成的都是C的代码,重用性不好,所以这次准备用Antlr来实现.
* 首先下载antlr2.75,安装运行
* 然后安装JRE1.42
* 然后添加classpath c:\antlr\275\bin
* 编写一个简单的test.g
class P extends Parser;
startRule
: n:NAME
{printf("name:%s ", n->toString().c_str());}
;
class L extends Lexer;
// one-or-more letters followed by a newline
NAME: ( 'a'..'z'|'A'..'Z' )+ NEWLINE
;
NEWLINE
: '\r' '\n' // DOS
| '\n' // UNIX
;
* 运行命令java antlr.Tool test.g 将生成parser的java代码
* 要生成cpp的代码只要在test.g文件中添加一个选项就可以了
options {