﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-λ-calculus（惊愕到手了欧耶，GetBlogPostIds.aspx）-随笔分类-作品</title><link>http://www.cppblog.com/vczh/category/6940.html</link><description>【QQ：343056143】【Email：vczh@163.com】【新浪微博：http://weibo.com/vczh】</description><language>zh-cn</language><lastBuildDate>Tue, 24 Nov 2015 10:53:04 GMT</lastBuildDate><pubDate>Tue, 24 Nov 2015 10:53:04 GMT</pubDate><ttl>60</ttl><item><title>刚刚写了一个Cppblog的备份程序</title><link>http://www.cppblog.com/vczh/archive/2013/06/29/201396.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Sat, 29 Jun 2013 13:57:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2013/06/29/201396.html</guid><wfw:comment>http://www.cppblog.com/vczh/comments/201396.html</wfw:comment><comments>http://www.cppblog.com/vczh/archive/2013/06/29/201396.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/vczh/comments/commentRss/201396.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vczh/services/trackbacks/201396.html</trackback:ping><description><![CDATA[<p>代码可以在这里直接下载到：<a title="http://www.cppblog.com/Files/vczh/Cppblog备份工具.rar" href="http://www.cppblog.com/Files/vczh/Cppblog备份工具.rar">http://www.cppblog.com/Files/vczh/Cppblog备份工具.rar</a></p>
<p>这是一个C#写的命令行程序，在资源管理器双击运行之后输入你的用户名和密码，然后就可以把目录、博客内容、图片和文件下载到当前目录下的一个叫做CppblogPosts的文件夹下面了。在此需要注意，<strong>我只会下载在博客里面引用了的、上传到了cppblog的图片和文件</strong>。下载的文件格式如下：</p>
<p>Posts.xml：记录了所有博客文章的一些元数据，还有每一个博客的id。<br />Post[博客id].txt：每一篇博客的内容。<br />Images.xml：保存了所有图片的&#8220;url&#8221;到&#8220;文件名&#8221;的映射。<br />Image[GUID]文件名.xxx：文件名。一个文件名究竟对应什么url可以再Images.xml里面查到。<br />Files.xml：保存了所有文件的&#8220;url&#8221;到&#8220;文件名&#8221;的映射。<br />File[GUID]文件名.xxx：文件名。一个文件名究竟对应什么url可以再Files.xml里面查到。</p>
<p>之所以安排成这样的格式是因为，下载完之后你们就可以自己写程序随便你们怎么处理了。</p>
<p>================无耻的分割线================</p>
<p>在做这个程序之前，我发现cppblog支持metaweblog的api，但是发现这个api没办法遍历帖子的id。我为此还发信给了博客园的管理员，最终让他们加上了这个功能，于是就有了现在这个程序了。在这个程序的代码里面，你们还能看到我用C#写的一个简单的XmlRpc的轮子。之所以不找别人的是因为，自己写比上网找然后学习怎么用快多了，啊哈哈哈哈。</p>
<p>这个轮子可是很漂亮的哦！</p><img src ="http://www.cppblog.com/vczh/aggbug/201396.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2013-06-29 21:57 <a href="http://www.cppblog.com/vczh/archive/2013/06/29/201396.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Vczh Library++3.0第一个Release提供下载！</title><link>http://www.cppblog.com/vczh/archive/2011/03/20/142261.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Sun, 20 Mar 2011 05:07:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2011/03/20/142261.html</guid><wfw:comment>http://www.cppblog.com/vczh/comments/142261.html</wfw:comment><comments>http://www.cppblog.com/vczh/archive/2011/03/20/142261.html#Feedback</comments><slash:comments>16</slash:comments><wfw:commentRss>http://www.cppblog.com/vczh/comments/commentRss/142261.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vczh/services/trackbacks/142261.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 项目主页：<a style="TEXT-DECORATION: underline" href="http://vlpp.codeplex.com/" target=_blank>http://vlpp.codeplex.com</a><br>&nbsp;&nbsp;&nbsp; 下载页面：<a style="TEXT-DECORATION: underline" href="http://vlpp.codeplex.com/releases/view/62850" target=_blank>http://vlpp.codeplex.com/releases/view/62850</a><br>&nbsp;&nbsp;&nbsp; 该Release对应的源代码：<a style="TEXT-DECORATION: underline" href="http://vlpp.codeplex.com/SourceControl/changeset/view/70602" target=_blank>http://vlpp.codeplex.com/SourceControl/changeset/view/70602</a><br><br>&nbsp;&nbsp;&nbsp; 第一个release没有文档，因此接下去我得做一个双语的文档生成工具了，然后会在下一个release里面添加完整的NativeX语言和脚本引擎API的文档。因此现在要学习如何使用NativeX和脚本引擎的API的话，可以下载源代码然后到下面的目录寻找资料：<br>&nbsp;&nbsp;&nbsp; 1、UnitTest\Binary\TestFiles\Code：我的单元测试工程使用的NativeX脚本代码<br>&nbsp;&nbsp;&nbsp; 2、UnitTest\Binary\ScriptCoreLibrary：NativeX预定义函数库的源代码<br>&nbsp;&nbsp;&nbsp; 3、Tools\Release\VleSource\VlScriptDotNet：vlscript.dll的.NET封装<br>&nbsp;&nbsp;&nbsp; 4、Tools\Release\VleSource\VlTurtle：使用vlscriptdotnet.dll开发的&#8220;强大的乌龟&#8221;<br><br>&nbsp;&nbsp;&nbsp; 因此下载release之后，可以打开Turtle\VlTurtle.exe，然后玩之。一个简单的方法是，打开内置的sample然后点Run，如图：<br><img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/vczh/Turtle_Sample_07.jpg" width=1147 height=768><br><br>
<img src ="http://www.cppblog.com/vczh/aggbug/142261.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2011-03-20 13:07 <a href="http://www.cppblog.com/vczh/archive/2011/03/20/142261.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>面向组合子编程（Combinator Programming）的PPT和Demo（最终版）</title><link>http://www.cppblog.com/vczh/archive/2010/09/02/125621.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Thu, 02 Sep 2010 04:42:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2010/09/02/125621.html</guid><wfw:comment>http://www.cppblog.com/vczh/comments/125621.html</wfw:comment><comments>http://www.cppblog.com/vczh/archive/2010/09/02/125621.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/vczh/comments/commentRss/125621.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vczh/services/trackbacks/125621.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; <a style="TEXT-DECORATION: underline" href="http://www.cppblog.com/vczh/archive/2010/08/17/123647.html" target=_blank>之前的一篇文章</a>曾经说过我在准备一个面向组合子编程的ppt和demo。在公司内部进行试运行之后，今天终于开讲了。<br><br>&nbsp;&nbsp;&nbsp; 当然在这之间的几个星期里面，我修改了ppt的内容，还有为demo添加了单元测试。所以我把<a style="TEXT-DECORATION: underline" href="http://www.cppblog.com/Files/vczh/Microsoft.DesignPattern.01.zip" target=_blank>ppt的内容和demo的代码</a>也一起打包上来了。<br><br>&nbsp;&nbsp;&nbsp; ppt包含2003和2007两种格式，demo使用的是Visual Studio2010的C#，当然是为了使用那个激动人心的&#8220;缺省参数&#8221;语法了。如果没装2010的话，那就赶紧装一个哈，如果不想装，那看看代码就行了。 
<img src ="http://www.cppblog.com/vczh/aggbug/125621.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2010-09-02 12:42 <a href="http://www.cppblog.com/vczh/archive/2010/09/02/125621.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>这几天写了一个关于面向组合子编程的ppt</title><link>http://www.cppblog.com/vczh/archive/2010/08/17/123647.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Mon, 16 Aug 2010 17:10:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2010/08/17/123647.html</guid><wfw:comment>http://www.cppblog.com/vczh/comments/123647.html</wfw:comment><comments>http://www.cppblog.com/vczh/archive/2010/08/17/123647.html#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://www.cppblog.com/vczh/comments/commentRss/123647.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vczh/services/trackbacks/123647.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 这几天写了一个关于面向组合子编程的ppt。几个月前跟某个dev lead借了他翻译的中文版<a style="TEXT-DECORATION: underline" href="http://book.douban.com/subject/4816447/" target=_blank>Pattern Hatching</a>，条件是要在公司里面开一场关于设计模式的讲座。其实本来一个月前就要讲了，不过中间出了点事情，所以等到这个月才开始。因此我挑选了面向组合子编程的这个主题，做了个demo和ppt。<br><br>&nbsp;&nbsp;&nbsp; 面向组合子编程原本是函数式编程的内容，主要说的是既然我们可以用Composite模式（参见<a style="TEXT-DECORATION: underline" href="http://www.blogjava.net/pengpenglin/archive/2008/01/21/176675.html" target=_blank>这里</a>和<a style="TEXT-DECORATION: underline" href="http://java-admin.javaeye.com/blog/235809" target=_blank>这里</a>）来做出像树一样的数据结构，那么我们做出组合起来跟树一样的行为（譬如Command模式，用类代表行为）不也可以吗？这个做法当然是行得通的，只不过一般我们很难看到一个需求的时候，可以意识到可以用面向组合子编程来搞定这个东西。因此我在这个ppt里面就举了这样的一个例子，也就是老掉牙的Log系统了：<br><br>&nbsp;&nbsp;&nbsp; 我们编译器在编译代码的时候，会产生下面的文件：<br>&nbsp;&nbsp;&nbsp; buildchk.err -- 记录着错误<br>&nbsp;&nbsp;&nbsp;&nbsp;buildchk.wrn -- 记录着警告<br>&nbsp;&nbsp;&nbsp; buildchk.log -- 记录所有详细信息和时间戳<br>&nbsp;&nbsp;&nbsp; 命令行窗口 -- 记录摘要，当然错误和警告还是要输出来的，只是内容可以简要一点<br><br>&nbsp;&nbsp;&nbsp; 然后我就用面像组合子来开发了一个小巧玲珑的系统，最终通过一个声明式编程的接口暴露出来，然后你还可以往里面添加新的功能。<br><br>&nbsp;&nbsp;&nbsp; 当然系统还是要经得起修改的，因此我还举了个例子，如果有了需求变更——<br>&nbsp;&nbsp;&nbsp; err和wrn要加错误/警告的序号<br>&nbsp;&nbsp;&nbsp; 支持GUI了——跟VS的错误列表差不多<br><br>&nbsp;&nbsp;&nbsp; 最后展示了面向组合子编程最强大的威力——只需要添加零件，所有已经存在的工具都可以立刻在这个零件上面使用了，因此只需要非常少的代码就可以完成这个需求变更。<br><br>&nbsp;&nbsp;&nbsp; 这里就<a style="TEXT-DECORATION: underline" href="http://www.cppblog.com/Files/vczh/Combinator.rar">放上我的ppt</a>了。明天还要先开一个内部讲座看看别人有什么意见然后进一步修改，完了demo在放出来。这个demo当然是C#写的了，有GUI，C++写GUI多麻烦啊&#8230;&#8230; 
<img src ="http://www.cppblog.com/vczh/aggbug/123647.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2010-08-17 01:10 <a href="http://www.cppblog.com/vczh/archive/2010/08/17/123647.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Vczh Library++3.0 开源啦！</title><link>http://www.cppblog.com/vczh/archive/2009/12/13/103131.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Sun, 13 Dec 2009 11:21:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2009/12/13/103131.html</guid><wfw:comment>http://www.cppblog.com/vczh/comments/103131.html</wfw:comment><comments>http://www.cppblog.com/vczh/archive/2009/12/13/103131.html#Feedback</comments><slash:comments>18</slash:comments><wfw:commentRss>http://www.cppblog.com/vczh/comments/commentRss/103131.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vczh/services/trackbacks/103131.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 项目主页：<a style="TEXT-DECORATION: underline" href="http://vlpp.codeplex.com/" target=_blank>http://vlpp.codeplex.com/</a><br><br>&nbsp;&nbsp;&nbsp; Vczh Library++从2006年就开始开发，到现在经历了一些版本变迁，到现在已经正式步入3.0了。现在Vczh Library++ 3.0的基础部分已经成型，我的目标是将Vczh Library++ 3.0做成一个在性能不是极端苛刻情况下使用的数据处理库，附带一个高速的脚本引擎。未来可能会提供更多的东西，但主要围绕着这两个目标走。<br><br>&nbsp;&nbsp;&nbsp; 我选择CodePlex主要是因为CodePlex支持Team Foundation System，这个系统跟Visual Studio 2008结合的相当好，提交更改都非常方便。而且CodePlex也提供SVN服务，一些不喜欢IDE的大大们也可以用SVN来下载代码。<br><br>&nbsp;&nbsp;&nbsp; 至于为什么上面的描述是英文的，因为在美帝公司习惯了&#8230;&#8230;
<img src ="http://www.cppblog.com/vczh/aggbug/103131.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2009-12-13 19:21 <a href="http://www.cppblog.com/vczh/archive/2009/12/13/103131.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++轻量级文法分析器更新，代码+DEMO×3（下载）</title><link>http://www.cppblog.com/vczh/archive/2009/04/06/79122.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Mon, 06 Apr 2009 14:18:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2009/04/06/79122.html</guid><wfw:comment>http://www.cppblog.com/vczh/comments/79122.html</wfw:comment><comments>http://www.cppblog.com/vczh/archive/2009/04/06/79122.html#Feedback</comments><slash:comments>34</slash:comments><wfw:commentRss>http://www.cppblog.com/vczh/comments/commentRss/79122.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vczh/services/trackbacks/79122.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: <br>对上一次的分析器进行重构之后，Combinator Parser加入了对字符串、词法分析器以及正则表达式的新支持。功能上则添加了对于歧义和非歧义的控制。<br><br>源代码与Demo下载内详<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/vczh/archive/2009/04/06/79122.html'>阅读全文</a><img src ="http://www.cppblog.com/vczh/aggbug/79122.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2009-04-06 22:18 <a href="http://www.cppblog.com/vczh/archive/2009/04/06/79122.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++轻量级可配置语法分析器（开源）</title><link>http://www.cppblog.com/vczh/archive/2009/04/03/78839.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Fri, 03 Apr 2009 09:21:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2009/04/03/78839.html</guid><wfw:comment>http://www.cppblog.com/vczh/comments/78839.html</wfw:comment><comments>http://www.cppblog.com/vczh/archive/2009/04/03/78839.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.cppblog.com/vczh/comments/commentRss/78839.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vczh/services/trackbacks/78839.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:     这个分析器包含了四个文件：<br>    VL_Data_Basic.h（使用了其中的智能指针VL_AutoPtr和一些类型重命名）<br>    VL_CpData.h（数据结构）<br>    VL_CpKernel.h/cpp（词法分析器和语法分析器）<br><br>    这个东西供给熟悉编译原理（至少熟悉BNF notation）的人互相学习交流。<br>    内附代码下载以及使用的例子。&nbsp;&nbsp;<a href='http://www.cppblog.com/vczh/archive/2009/04/03/78839.html'>阅读全文</a><img src ="http://www.cppblog.com/vczh/aggbug/78839.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2009-04-03 17:21 <a href="http://www.cppblog.com/vczh/archive/2009/04/03/78839.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GUI Preview Demo完成！</title><link>http://www.cppblog.com/vczh/archive/2008/08/25/59954.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Mon, 25 Aug 2008 12:17:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2008/08/25/59954.html</guid><wfw:comment>http://www.cppblog.com/vczh/comments/59954.html</wfw:comment><comments>http://www.cppblog.com/vczh/archive/2008/08/25/59954.html#Feedback</comments><slash:comments>18</slash:comments><wfw:commentRss>http://www.cppblog.com/vczh/comments/commentRss/59954.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vczh/services/trackbacks/59954.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: GUI Preview Demo完成！代码结构、下载以及注意事项内详。&nbsp;&nbsp;<a href='http://www.cppblog.com/vczh/archive/2008/08/25/59954.html'>阅读全文</a><img src ="http://www.cppblog.com/vczh/aggbug/59954.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2008-08-25 20:17 <a href="http://www.cppblog.com/vczh/archive/2008/08/25/59954.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Vczh Free Script 2.0 beta 发布</title><link>http://www.cppblog.com/vczh/archive/2008/07/01/55072.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Tue, 01 Jul 2008 13:35:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2008/07/01/55072.html</guid><wfw:comment>http://www.cppblog.com/vczh/comments/55072.html</wfw:comment><comments>http://www.cppblog.com/vczh/archive/2008/07/01/55072.html#Feedback</comments><slash:comments>23</slash:comments><wfw:commentRss>http://www.cppblog.com/vczh/comments/commentRss/55072.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vczh/services/trackbacks/55072.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 作者保留对源代码的一切权利<br><br>文件是一个rar压缩包，结构如下：<br>【产品】<br>    【Demo】两个Demo的编译结果。这个文件夹里面的脚本代码仅供测试用。<br>    【库】编译结果以及Vczh Free Script 2.0提供的插件封装，使用Vczh Free Script脚本语言编写。<br>    【文档>】使用说明书。<br>【源代码】源代码仅能使用Visual C++ 2005或以上编译器编译。<br>    【FreeScript】使用FsRuntime.dll写的C++Demo，控制台虚拟机。<br>    【FreeScript_CSharp】使用FsRuntime_clr.dll写的C#Demo，控制台虚拟机。<br>    【FsRuntime】Vczh Free Script 2.0 DLL接口。<br>    【FsRuntime_CLR】使用FsRuntime.dll写的.NET接口。<br>    【Library】<br>        【Data】数据输出以及必要的操作系统接口封装。<br>   &nbsp;&nbsp;<a href='http://www.cppblog.com/vczh/archive/2008/07/01/55072.html'>阅读全文</a><img src ="http://www.cppblog.com/vczh/aggbug/55072.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2008-07-01 21:35 <a href="http://www.cppblog.com/vczh/archive/2008/07/01/55072.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何手写语法分析器</title><link>http://www.cppblog.com/vczh/archive/2008/06/15/53373.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Sun, 15 Jun 2008 13:59:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2008/06/15/53373.html</guid><wfw:comment>http://www.cppblog.com/vczh/comments/53373.html</wfw:comment><comments>http://www.cppblog.com/vczh/archive/2008/06/15/53373.html#Feedback</comments><slash:comments>28</slash:comments><wfw:commentRss>http://www.cppblog.com/vczh/comments/commentRss/53373.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vczh/services/trackbacks/53373.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在写可配置的语法分析器之前，我觉得还是先说说如何手写语法分析器好。因为对于大部分人来说，开发一个可配置的语法分析器并没有什么作用，反而针对某种特定的语法开发特定的语法分析器是特别有必要的。典型的有表达式计算器、某种格式化的文件（HTML、XML等）或者是其他的复杂而且符合树型结构的字符串。根据目前论坛的反应来看，有一些朋友们对如何开发一套自己的脚本引擎比较感兴趣。等基础的文章都写完以后我会考虑撰写一个系列的文章介绍如何开发自己的脚本引擎。<br><br>这篇文章会附带一些必要的代码以便帮助读者们理解。为了方便，代码使用DevC++开发。&nbsp;&nbsp;<a href='http://www.cppblog.com/vczh/archive/2008/06/15/53373.html'>阅读全文</a><img src ="http://www.cppblog.com/vczh/aggbug/53373.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2008-06-15 21:59 <a href="http://www.cppblog.com/vczh/archive/2008/06/15/53373.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>个人作品目录</title><link>http://www.cppblog.com/vczh/archive/2008/06/06/52318.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Thu, 05 Jun 2008 17:36:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2008/06/06/52318.html</guid><description><![CDATA[<strong>自我感觉良好系列代码：</strong><br /><strong>&nbsp;&nbsp;&nbsp; </strong>GacUI<br /><ul><li>官网[<a href="http://www.gaclib.net/" target="_blank">http://www.gaclib.net/</a>]</li><li>讨论群[231200072] &nbsp; &nbsp; &nbsp; &nbsp;</li><li>项目主页[<span style="color: red;"><a href="https://github.com/vczh-libraries/Release" target="_blank">https://github.com/vczh-libraries/Release</a></span>]</li></ul>&nbsp;&nbsp;&nbsp; 编程相关讨论1000人群：<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2012/11/29/195805.html" target="_blank">点击进入</a>&nbsp;<br />&nbsp;&nbsp;&nbsp; IDE实验项目Release<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2011/03/20/142261.html" target="_blank">提供下载</a>！<br />&nbsp;&nbsp;&nbsp; Cppblog博客下载小程序：<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2013/06/29/201396.html" target="_blank">点击进入</a> <br /><br /><strong>语法分析推荐书籍</strong>：<br />&nbsp;&nbsp;&nbsp; 我推荐的书：<a style="text-decoration: underline" href="http://www.cppblog.com/Files/vczh/Parsing_Techniques.zip" target="_blank">《Parsing Techniques》</a>，还有它的第二版（<a style="text-decoration: underline" href="http://www.cppblog.com/Files/vczh/Parsing_Techniques_2.part1.rar" target="_blank">part1.rar</a>和<a style="text-decoration: underline" href="http://www.cppblog.com/Files/vczh/Parsing_Techniques_2.part2.rar" target="_blank">part2.rar</a>）<br /><br /><strong>编译原理系列文章：<br />&nbsp;&nbsp;&nbsp; </strong>跟vczh看实例学编译原理：系列文章<a style="color: ; text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2014/01/19/205468.html" target="_blank">（零）</a>，<a style="color: ; text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2014/02/11/205702.html" target="_blank">（一）</a>，<a style="text-decoration: underline;" target="_blank" href="http://www.cppblog.com/vczh/archive/2014/03/02/206014.html">（二）</a>。<span style="color: red"><strong>*new* </strong></span><br />&nbsp;&nbsp;&nbsp;&nbsp;如何开发可配置语法分析器：系列文章<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2012/11/21/195503.html" target="_blank">（一）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2012/11/29/195779.html" target="_blank">（二）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2012/12/07/196079.html" target="_blank">（三）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2012/12/07/196085.html" target="_blank">（三点五）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2012/12/23/196524.html" target="_blank">（四）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2013/01/01/196893.html" target="_self">（五）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2013/04/13/199399.html" target="_blank">（六）</a>，（七）。<br />&nbsp;&nbsp;&nbsp; 如何设计一门语言：系列文章<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2013/04/27/199765.html" target="_blank">（一）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2013/04/28/199805.html" target="_blank">（二）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2013/05/05/199974.html" target="_blank">（三）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2013/05/12/200195.html" target="_blank">（四）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2013/05/25/200580.html" target="_blank">（五）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2013/06/10/200920.html" target="_blank">（六）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2013/07/05/201541.html" target="_blank">（七）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2013/07/27/202154.html" target="_blank">（八）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2013/08/17/202605.html" target="_blank">（九）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2013/09/16/203249.html" target="_blank">（十）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2013/10/19/203819.html" target="_blank">（十一）</a><span>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2013/11/10/204189.html" target="_blank">（十二）</a>。</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2011/09/27/157007.html" target="_blank">浅谈面向对象语言的类型运算</a>。<br />&nbsp;&nbsp;&nbsp;&nbsp;<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2008/06/15/53373.html" target="_blank">如何手写语法分析器</a>。<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2008/05/22/50763.html" target="_blank">《构造正则表达式引擎》和《构造可配置词法分析器》</a>。<br />&nbsp;&nbsp;&nbsp; <a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2008/05/21/50656.html" target="_blank">使用高阶函数开发语法分析器</a>。<br /><br /><strong>使用我写的库开发语法分析器系列文章：</strong><br />&nbsp;&nbsp;&nbsp; <a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2010/04/28/113836.html" target="_blank">Vczh Library++语法分析器开发指南</a>。<br />&nbsp;&nbsp;&nbsp;&nbsp;<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2009/12/13/103101.html" target="_blank"><font color="#0066cc">Vczh Library++3.0 C++轻量级可配置语法分析器</font></a>，系列文章<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2009/11/28/102129.html" target="_blank"><font color="#800080">（一）</font></a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2009/11/28/102159.html" target="_blank"><font color="#800080">（二）</font></a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2009/12/05/102600.html" target="_blank"><font color="#0066cc">（三）</font></a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2009/12/12/103057.html" target="_blank"><font color="#0066cc">（四）</font></a>。<br />&nbsp;&nbsp;&nbsp; <a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2009/04/06/79122.html" target="_blank">C++轻量级可配置语法分析器</a>。<br /><br />&nbsp;&nbsp;&nbsp; 开发自己的IDE&#8212;&#8212;Vczh Library++的IDE工程开发历程：<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2010/09/16/126706.html" target="_blank">一</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2010/09/17/126817.html" target="_blank">二</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2010/09/18/126937.html" target="_blank">三</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2010/09/20/127104.html" target="_blank">四</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2010/10/08/129087.html" target="_blank">五</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2010/10/15/129946.html" target="_blank">六</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2010/10/17/130202.html" target="_blank">七</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2010/10/23/130969.html" target="_blank">八</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2010/11/06/132654.html" target="_blank">九</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2010/11/07/132876.html" target="_blank">十</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2010/11/22/134302.html" target="_blank">十一</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2010/12/05/135505.html" target="_blank">十二</a>。<span style="color: red"><strong><br /></strong></span><br /><strong>挖了坑却没空填上系列文章：</strong><br />&nbsp;&nbsp;&nbsp; 手把手教你写脚本引擎<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2008/07/07/55577.html" target="_blank">（一）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2008/07/10/55793.html" target="_blank">（二）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2008/07/19/56585.html" target="_blank">（三）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2008/08/02/57829.html" target="_blank">（四）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2009/05/11/82539.html" target="_blank">（五）</a>。Demo <a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2009/03/28/78156.html" target="_blank">（一）</a>。<br />&nbsp;&nbsp;&nbsp; C++实用技巧：<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2010/06/22/118493.html" target="_blank">（一）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2010/06/24/118603.html" target="_blank">（二）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2010/06/24/118635.html" target="_blank">（三）</a>，<a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2010/06/27/118829.html" target="_blank">（四）</a>。<br /><br /><strong>作品及代码下载：</strong><br />&nbsp;&nbsp;&nbsp; <a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2009/05/22/85424.html" target="_blank">JIT脚本引擎：CMinus 0.1版开放下载</a>&nbsp;<br />&nbsp;&nbsp;&nbsp; <a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2008/08/25/59954.html" target="_blank">Vczh Library++ 2.0 GUI Framework 预览版代码以及示例程序</a><br />&nbsp;&nbsp;&nbsp; <a style="text-decoration: underline" href="http://www.cppblog.com/vczh/archive/2008/07/01/55072.html" target="_blank">Vczh Free Script 2.0 beta发布</a>&nbsp;<img src ="http://www.cppblog.com/vczh/aggbug/52318.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2008-06-06 01:36 <a href="http://www.cppblog.com/vczh/archive/2008/06/06/52318.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《构造正则表达式引擎》新鲜出炉啦！</title><link>http://www.cppblog.com/vczh/archive/2008/05/22/50763.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Thu, 22 May 2008 07:06:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2008/05/22/50763.html</guid><wfw:comment>http://www.cppblog.com/vczh/comments/50763.html</wfw:comment><comments>http://www.cppblog.com/vczh/archive/2008/05/22/50763.html#Feedback</comments><slash:comments>36</slash:comments><wfw:commentRss>http://www.cppblog.com/vczh/comments/commentRss/50763.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vczh/services/trackbacks/50763.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 各位读者们，《构造正则表达式引擎》新鲜出炉啦！<br><br>&nbsp;&nbsp;&nbsp;&nbsp;<a style="TEXT-DECORATION: underline" href="http://www.cppblog.com/Files/vczh/正则表达式.rar"><strong>《构造正则表达式引擎》</strong></a><br>&nbsp;&nbsp;&nbsp;&nbsp;这篇文章描述了纯匹配正则表达式和具有高级功能（正向预查，反向预查，匿名捕获，命名捕获，命名检查和贪婪循环等）的正则表达式各自用来匹配正则表达式的算法。<strong>如果大家在书写好的正则表达式的时候出现了麻烦，或者在开发自己的正则表达式的时候遇到障碍</strong>，那不妨读一读这篇文章。不过对于没读过下面这篇文章的朋友，如果不是很熟悉编译原理关于DFA和NFA的知识，那么建议首先阅读下面这篇文章。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;<a style="TEXT-DECORATION: underline" href="http://www.cppblog.com/Files/vczh/词法分析.rar"><strong>《构造可配置词法分析器》</strong></a><br>&nbsp;&nbsp;&nbsp; 这篇文章描述了如何从简单的正则表达式构造&#949;-NFA，并且一步一步转换到DFA的算法，而且还提出了一种可配置词法分析器的可能的实现方法。学习《编译原理》的朋友们，如果在状态机那里遇到什么问题的话，那么不妨读一读这篇文章。<br><br>&nbsp;&nbsp;&nbsp; 上面这两篇文章是我在学习《编译原理》之后<a style="TEXT-DECORATION: underline" href="http://www.cppblog.com/vczh/archive/2008/05/07/49158.html">开发正则表达式引擎</a>的心得体会，在这里与大家分享，共同进步。 
<img src ="http://www.cppblog.com/vczh/aggbug/50763.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2008-05-22 15:06 <a href="http://www.cppblog.com/vczh/archive/2008/05/22/50763.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IT项目管理大作业：Tower Defense 2008（最新修改：2008.05.03晚上8点）</title><link>http://www.cppblog.com/vczh/archive/2008/05/03/48702.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Sat, 03 May 2008 05:46:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2008/05/03/48702.html</guid><wfw:comment>http://www.cppblog.com/vczh/comments/48702.html</wfw:comment><comments>http://www.cppblog.com/vczh/archive/2008/05/03/48702.html#Feedback</comments><slash:comments>27</slash:comments><wfw:commentRss>http://www.cppblog.com/vczh/comments/commentRss/48702.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vczh/services/trackbacks/48702.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 华南理工大学软件学院本科05级3班，陈梓瀚（vczh）<br><br>    游戏规则：<br>    1：地图上可以建立三种炮塔塔，游戏有上、左两个敌人的起始点，两个起始点的敌人分别到下、右两个终止点。<br>    2：每一盘有1000个等级分别从1-200的敌人从起始点出发自动寻路前往终止点。如果有10个敌人到达了终止点的话则游戏结束，玩家输。如果所有的敌人都被消灭或到达终止点之后，到达终止点的敌人没有10个的话则游戏结束，玩家赢。<br>    3：建立炮塔的方格敌人不能通过。在建立一个炮塔的时候，如果程序发现这个炮塔的建立会导致敌人找不到任何路径前往各自的终止点的话，则建立被禁止。<br>    4：炮塔可以是用金钱建立或升级，可以卖出货的金钱。消灭敌人能够获得金钱。<br>    5：三种炮塔分别是<br>    ·升级后数量变多，射程变长，攻击力变强<br>    ·升级后速度变快，射程变长，攻击力变强<br>    ·升级后一次爆炸伤害的范围变大，射程变长，攻击力变强<br>    ·升级一次后减速范围变大，减速因子变大<br>    6：炮弹在&nbsp;&nbsp;<a href='http://www.cppblog.com/vczh/archive/2008/05/03/48702.html'>阅读全文</a><img src ="http://www.cppblog.com/vczh/aggbug/48702.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2008-05-03 13:46 <a href="http://www.cppblog.com/vczh/archive/2008/05/03/48702.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>