﻿<?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++博客-兔子的技术博客-随笔分类-编译原理</title><link>http://www.cppblog.com/flyinghare/category/11476.html</link><description>兔子</description><language>zh-cn</language><lastBuildDate>Fri, 18 May 2012 17:57:41 GMT</lastBuildDate><pubDate>Fri, 18 May 2012 17:57:41 GMT</pubDate><ttl>60</ttl><item><title>跑步的好处</title><link>http://www.cppblog.com/flyinghare/archive/2012/05/15/174954.html</link><dc:creator>会飞的兔子</dc:creator><author>会飞的兔子</author><pubDate>Tue, 15 May 2012 03:36:00 GMT</pubDate><guid>http://www.cppblog.com/flyinghare/archive/2012/05/15/174954.html</guid><wfw:comment>http://www.cppblog.com/flyinghare/comments/174954.html</wfw:comment><comments>http://www.cppblog.com/flyinghare/archive/2012/05/15/174954.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/flyinghare/comments/commentRss/174954.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/flyinghare/services/trackbacks/174954.html</trackback:ping><description><![CDATA[<span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">1.告别臃肿身材。&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">许多人开始跑步就是因为减肥，跑步确实减肥的最好运动方式，跑步每分钟比起其他运动燃烧更多的卡路里。&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">2.防止你的骨骼，肌肉退化。&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">我们的骨骼是和你的身体需求相互协调的。长期坐在显示器前的我们让我们的骨骼越来越脆弱。而长期的，经常的运动会使你的骨骼保持健康。更进一步说就是防止我们身体内部老化的更快。经常的高强度锻炼，例如跑步，被证明可以促进人体荷尔蒙的生长，荷尔蒙就是那些名人为了看起来更年轻而持续注射的药剂。&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">3.抵抗疾病&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">跑步可以降低得中风和乳腺癌的风险。经常的跑步已经成为医生对那些容易引发或在已经处在早期的骨质疏松，糖尿病，高血压病人的治疗建议。&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">4.维持并提高总体的身体水平。&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">跑步是是人们可以采取的最好的锻炼身体的运动。它可以提高胆固醇,降低血液凝块的危险，锻炼你的50%的经常处于闲置状态的肺。跑步还可以通过增加你的淋巴细胞来增强你的免疫力。&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">5.让你更加自信。&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">慢跑像其他一些单人运动一样，它可以增强你的自信心。跑步让你完成一次又一次的尝试，让你变得更强大，更加肯定自己。他让你真实的越过某个山峰，穿过某个障碍.在意识到你的身体已经更加强壮，更加有用，你会得到被赋予力量和自由的感觉。自信更是那些通过跑步成功的减肥并得到自己心中理想身材的跑步者的宝贵财富。&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">6.放松自己，减轻压力。&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">慢跑可以转移聂注意力，沐浴在路旁的风景中，你的烦恼一定会消失殆尽。&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">长跑适合那些正处在一堆头疼，恼人的烦心事的人。还有比在两个小时的长跑中，清理的的头脑、舒缓自己的神经更好的主意了吗。&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">如果你此时觉得异常压抑，何不快跑一下呢，之后你会一个好的心情。&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">7.著名的&#8220;跑步者高峰体验&#8221;&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">包括释放压力，慢跑被证明提高你的心态。跑步，特别在户外和旅行中,会使身体释放一种物质让你产生一种幸福愉悦感（跑步者高峰体验）或者就是快乐的感觉。跑步已经被采用了多年来治疗临床抑郁症，上瘾等。更少的压力，更少的压抑，更少的疲劳，更少的混乱，经过一段时间的经常跑步，病人很快就有了变化。跑步让他们有了注意的对象，让他们看到了除了他们消极的状态和沉溺的事务，还有一些美好的东西的存在。&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">8.锻炼你的头脑。&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">像对你的身体有所帮助一样，跑步同样对你的头脑很有帮助。通过在跑步中克服一系列的障碍，你学会了专注和决心.在经历那些你几乎要放弃的长跑或其他项目后你会发现：你在跑步过程中产生的意志和体魄的增强让你在其他方面有着同样的专注和决心。&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">9.增强合作精神。&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">又是一个非常值得去做的好处。这点好处或许让很多人感到惊奇，因为人们认为跑步不可能得到这种益处，仅仅由于跑步是单人运动。但是跑步确实有时涉及到互相合作。旅行跑步，特别是在那些路况不好的地方，需要极大的合作意识。这些路面经常会有一些 障碍如石头、灌木让跑步进行的很困难。&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">10.随时随地，简单。&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">不是很多的运动可以在任何地方，几乎不需要设备的。我敢肯定古代希腊人会争辩说甚至是鞋子和衣服也不需要。今天，我们只是需要一双好点的跑步鞋然后就可以出发了。从市中心到郊区,整个世界的地方等待你的探索。经常出差吗？你的旅行箱里肯定会有空间来装你的运动鞋的。这个世界就是你的健身房，去再次发现它吧。&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">Here are some tips for how to make running a practice:&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">Be consistent in your running program. Plan your weekly workout schedule and stick to it. This will teach you persistence.&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">Know which focuses you'll use during every run. This will teach you planning and mindfulness, and improve your mind/body connection.&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">Constantly practice relaxing your muscles. This will help to relieve tension and train you to relax no matter what activity you're doing.&nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">At the end of your run, spend a few minutes doing an "end-of-run review." Ask yourself how well you did with keeping your focuses, how your body felt during the run. What did you come away with that will help your next run? Then, the next time you go out for a run, you'll have something to work on that you brought forward from your last run. In this way you'll build a healthy, growing and sustainable running program.&nbsp;</span>&nbsp;<br />转自：<a href="http://www.douban.com/group/topic/20749798/">http://www.douban.com/group/topic/20749798/</a><img src ="http://www.cppblog.com/flyinghare/aggbug/174954.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/flyinghare/" target="_blank">会飞的兔子</a> 2012-05-15 11:36 <a href="http://www.cppblog.com/flyinghare/archive/2012/05/15/174954.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用Flex Bison 和LLVM编写自己的编译器</title><link>http://www.cppblog.com/flyinghare/archive/2011/01/03/137930.html</link><dc:creator>会飞的兔子</dc:creator><author>会飞的兔子</author><pubDate>Mon, 03 Jan 2011 14:25:00 GMT</pubDate><guid>http://www.cppblog.com/flyinghare/archive/2011/01/03/137930.html</guid><wfw:comment>http://www.cppblog.com/flyinghare/comments/137930.html</wfw:comment><comments>http://www.cppblog.com/flyinghare/archive/2011/01/03/137930.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/flyinghare/comments/commentRss/137930.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/flyinghare/services/trackbacks/137930.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1、介绍我总是对编译器和语言非常感兴趣，但是兴趣并不会让你走的更远。大量的编译器的设计概念可以搞的任何一个程序员迷失在这些概念之中。不用说，我也曾今尝试过，但是并没有取得太大的成功，我以前的尝试都停留在语义分析阶段。本文的灵感主要来源于我最近一次的尝试，并且在这一次中我取得一点成就。幸运的是，最近的几年，我参加了一些项目，这些项目给了我在建立编译器上很多有用的经验和观点。另外一件事是，...&nbsp;&nbsp;<a href='http://www.cppblog.com/flyinghare/archive/2011/01/03/137930.html'>阅读全文</a><img src ="http://www.cppblog.com/flyinghare/aggbug/137930.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/flyinghare/" target="_blank">会飞的兔子</a> 2011-01-03 22:25 <a href="http://www.cppblog.com/flyinghare/archive/2011/01/03/137930.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tiny Compiler（一个解释器的学习范例）</title><link>http://www.cppblog.com/flyinghare/archive/2010/03/21/110247.html</link><dc:creator>会飞的兔子</dc:creator><author>会飞的兔子</author><pubDate>Sun, 21 Mar 2010 12:47:00 GMT</pubDate><guid>http://www.cppblog.com/flyinghare/archive/2010/03/21/110247.html</guid><wfw:comment>http://www.cppblog.com/flyinghare/comments/110247.html</wfw:comment><comments>http://www.cppblog.com/flyinghare/archive/2010/03/21/110247.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/flyinghare/comments/commentRss/110247.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/flyinghare/services/trackbacks/110247.html</trackback:ping><description><![CDATA[<p>转自：<a href="http://wantnon.spaces.live.com/blog/cns!22376C1C5B93C0AD!464.entry">http://wantnon.spaces.live.com/blog/cns!22376C1C5B93C0AD!464.entry</a><br><br><a href="http://www.cppblog.com/Files/flyinghare/Tiny-Compiler-v5.rar">源代码下载</a>。&nbsp;</p>
<p>用c++写的解释器，<br>语法规则类似于C和matlab，<br>支持数组和函数调用，并用mfc做了个简单界面，<br>内附详细说明及例子程序。<br>今后如有任何更新，将在本日志贴出。</p>
<p>更新到第五版：<br>（1），计算器工具中增加了公式的&#8220;立体显示&#8221;，（对任意复杂的分式都可以以正确的层次部句显示出来）。<br>（2），<strong>从本版本始开放源代码</strong>。<br>第五版下载地址：<br><a title=http://cid-22376c1c5b93c0ad.skydrive.live.com/self.aspx/.Public/Tiny%20Compiler%5E55r%5E6.rar href="http://cid-22376c1c5b93c0ad.skydrive.live.com/self.aspx/.Public/Tiny%20Compiler%5E55r%5E6.rar"><font color=#0066a7>http://cid-22376c1c5b93c0ad.skydrive.live.com/self.aspx/.Public/Tiny%20Compiler%5E55r%5E6.rar</font></a><br><strong>开放源代码申明</strong>：<br>本程序源码仅供学习探讨，永远不可用于商业目的。<br>您可以借鉴其中的算法和片段，也可以做出自己的改进，但改进后必须注明为您自己的版本，以便与原作相区别（请保持原系列的纯净）。<br>如转载本代码请保持完整（不可增删或修改任何一个文件）。<br>本程序的官方日志：<a href="http://wantnon.spaces.live.com/blog/cns!22376C1C5B93C0AD!464.entry"><font color=#0066a7>http://wantnon.spaces.live.com/blog/cns!22376C1C5B93C0AD!464.entry</font></a><br>如有更新也将于此日志中给出。<br>作者空间：<a href="http://wantnon.spaces.live.com/"><font color=#0066a7>http://wantnon.spaces.live.com/</font></a><br>欢迎留言提出宝贵意见。<br>我的口号：<strong>敞开心扉，开放源码，供小方学习，任大方贻笑</strong>。（主题曲：&#8220;村里有个姑娘叫小方&#8230;&#8230;&#8221;：)）<br>截图：<br><a href="https://khgkfw.bay.livefilestore.com/y1mJL_21Rx-u9b2CPbny-aXiUui7ZwknGTwTBuw07a6JWXz4ZBJmaqDcwGrlfR27c0ecF8ou9nfLcAhdVY0WoPP6FwHTEQmUrl7ziWIoFctZxV6Khlfgn88x5ONdMmjxZF0vMWYxkbB6V9RbZYjk2VCNw/image[22]%203DC96CA6.png" rel=WLPP><img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="https://khgkfw.bay.livefilestore.com/y1m9P5PSxSnp9E5aiVEyO1ZmiIoF-NBEc6KKmJjRYFh7PUnvKeiRaC9NKrEOPZA3NkpVR4Q1dUlm22ru20wwCYRDSPGa-SZJspEnlohyuuUgCihyxTWbhiUb6ZdOV493wHqxJ8Qgvh3hErQz8tJZHmGyA/image_thumb[13].png" width=539 height=424></a>&nbsp;</p>
<p><a href="https://khgkfw.bay.livefilestore.com/y1mPPr99wTMpsPfs4MgDw3hgjK-sj5rXFKFjiKG19_TrST3eesrcAholYnd2NvBpQbJMAmlYIkh7zk3AIBMaqSDdfd66MsgsIptYRDBgoLH1LRN60oVyabM5aU9JvKCihMxP3IJzk-uuo_0JFKxT1_88Q/image[26].png" rel=WLPP><img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="https://khgkfw.bay.livefilestore.com/y1my4Mz7Xlste9NoJwvlxQ1KijZxvRZVQHi2GgWR38dgyrm_JtXVDWMhxzHDjjLawi7d2KKgOsZyhRLAcpbSJys5FNB0450z_O3MDS6a8JUDqaT4-FFCikfFifdkX6vU67__BDX5bmy9E-frJ8OmwDg4Q/image_thumb[17]%207717F737.png" width=393 height=345></a> <a href="https://khgkfw.bay.livefilestore.com/y1mTOHFMRkKKillAKGoi8t9kq1WJbgVKnWms4m8EEa6Ish4LqiUP-LAF49MqpCO2glQi6A-hAofE8J8cqVrTJXCZX9jyC9ll422Q6_Nslw-tp0Tvi5qlt8J56bvA8QICKyOXFGqhH7eYrXnDTfqLkFUZA/image[25].png" rel=WLPP><img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="https://khgkfw.bay.livefilestore.com/y1mW83SqtvKkENRXvSqL317pXHHpisPdwMULxXwPcetDurhVq3bOuSMgOPG7XVFAweWA823mT3HcXujEkj-mtyEcxmbStKj5dYffICApfWNQi0d1cN7D04wyNi9kamg4vxW7ePeZ5RpN7o2lBdkBaQ0QA/image_thumb[16].png" width=300 height=346></a>&nbsp; <br>-----------------------------------------------------------------------------<br>历史版本：</p>
<p>第四版：<br>更新到第四版:<br>（1），增加了语法树的析构函数，内存回收更彻底。<br>（2），增加了显示语法树的功能：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当运行完一个程序之后，点&#8220;图形-&gt;语法树&#8221;可以显示语法树的结构。<br>第四版下载地址:<br><a title=http://cid-22376c1c5b93c0ad.skydrive.live.com/self.aspx/.Public/Tiny%20Compiler%5E54r%5E6.rar href="http://cid-22376c1c5b93c0ad.skydrive.live.com/self.aspx/.Public/Tiny%20Compiler%5E54r%5E6.rar"><font color=#0066a7>http://cid-22376c1c5b93c0ad.skydrive.live.com/self.aspx/.Public/Tiny%20Compiler%5E54r%5E6.rar</font></a><br>截图：<br><a href="https://khgkfw.bay.livefilestore.com/y1mIsQRHJLhFqffkl4o4THR1Rqv2B4D37asxlC_IAE8YpP1Cnmq63pbAF9OEIDZskQVPyH4L8sXkJaa8RUX-g2utLKLCAEyiuyCzjtWVp_c95VMcE_q62VUcU8TzfmbzgX-r4Z9yjJXTsdP8Y0ERiHmEw/image[5]%202FE64AFB.png" rel=WLPP><img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="https://khgkfw.bay.livefilestore.com/y1mhBi5ZYUSBbCL89bF-w2gOjTUa96vE3exoQMfMg48VWnGCex9nQl8RKIoNdfTWrQ_FDYxGrcJKsC7dn8oSJLHb9uL8SEMgz9V3aGgP2qVdSAHeiY7LJi07LBzrno3MsZ-JlxA7Eq_uRnDNaMSCK5KkQ/image_thumb[2]%207D8967E7.png" width=356 height=254></a><br>--<br>第三版：<br>第三版下载地址：<br><a title=http://cid-22376c1c5b93c0ad.skydrive.live.com/self.aspx/.Public/Tiny%20Compiler^53r^6.rar href="http://cid-22376c1c5b93c0ad.skydrive.live.com/self.aspx/.Public/Tiny%20Compiler%5E53r%5E6.rar"><font color=#0066a7>http://cid-22376c1c5b93c0ad.skydrive.live.com/self.aspx/.Public/Tiny%20Compiler^53r^6.rar</font></a><br>截图：<br><a href="https://khgkfw.bay.livefilestore.com/y1mWZaxeIcDpRjtxIjU1Zid6mjMPuklQIrwYPrdkwC4p256bUnRCl4yFNaj6T1nq8GGzYPaor5ZdFe8myhNNBrHdmEKYeydyjh0p9HJ6v0oh4a8_v-GuUJ_y3nkLUq7Wm0TtHiuvsu2FjqYoWuTRHZsMA/image[12].png" rel=WLPP><img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="https://khgkfw.bay.livefilestore.com/y1msS8x82-D-gRgN0i4TpeoJUpJcXVAdXfbTymv68KvNOquIgO2VxRVw-zk2e-1fssndcUHraxxC-SpBrpCaZJ62q7s9XofaqGgjYl5fdbmqwFJsaLw25GeQUfe7puQTPZb0CTTn5ywjmQFvLVYXmhjkA/image_thumb[8]%2045CA47ED.png" width=354 height=266></a>&nbsp;<br><a href="https://khgkfw.bay.livefilestore.com/y1m-D82F35qthaMbxeZwiG3VXje9VHgmH-V9jPbr7vgHbA30ekyKE8N4f4Ue7yYLrXQ64TCaSV4CvGfJz0tWXWuJWsEMvu7UzdEvuxgYYYtNCfQY9nmtHPbReUgKTR7nyfdDscXY1bqldt4AxpjvYrvEQ/image[15]%200C2C0DBE.png" rel=WLPP><img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="https://khgkfw.bay.livefilestore.com/y1mF5mtiMON7I3akDbqIP-CjuvZD9JYm-XHtRv5n65TIz0LqXXTcI2XMPuzhfxuGCjCmdEYNkXh_s9CPZU7lG-kR8B2TKqSDVVX-iD2SdI0GAoGIBTLt0Ktal1ouVJ_NzMcPO9jbGQiKptEWBA8Eh4-xg/image_thumb[11].png" width=356 height=266></a></p>
<p><br></p>
<img src ="http://www.cppblog.com/flyinghare/aggbug/110247.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/flyinghare/" target="_blank">会飞的兔子</a> 2010-03-21 20:47 <a href="http://www.cppblog.com/flyinghare/archive/2010/03/21/110247.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>LEX 和 YACC 学习笔记 </title><link>http://www.cppblog.com/flyinghare/archive/2009/08/14/93323.html</link><dc:creator>会飞的兔子</dc:creator><author>会飞的兔子</author><pubDate>Fri, 14 Aug 2009 07:26:00 GMT</pubDate><guid>http://www.cppblog.com/flyinghare/archive/2009/08/14/93323.html</guid><wfw:comment>http://www.cppblog.com/flyinghare/comments/93323.html</wfw:comment><comments>http://www.cppblog.com/flyinghare/archive/2009/08/14/93323.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/flyinghare/comments/commentRss/93323.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/flyinghare/services/trackbacks/93323.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="FONT-FAMILY: 微软雅黑">以下是针对</span> Parser generator 2.07 <span style="FONT-FAMILY: 微软雅黑">中的</span> Class <span style="FONT-FAMILY: 微软雅黑">例子的笔记；要查看完整的工程和代码，可参考原例。</span> </p>
<p style="MARGIN-LEFT: 5pt">&nbsp; &nbsp; &nbsp; &nbsp;</p>
<div>
<table style="WIDTH: 957px; BORDER-COLLAPSE: collapse; HEIGHT: 658px" border=0>
    <colgroup>
    <col style="WIDTH: 198px">
    <col style="WIDTH: 662px"></colgroup>
    <tbody vAlign=top>
        <tr>
            <td style="BORDER-RIGHT: #a3a3a3 1pt solid; PADDING-RIGHT: 3px; BORDER-TOP: #a3a3a3 1pt solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: #a3a3a3 1pt solid; PADDING-TOP: 3px; BORDER-BOTTOM: #a3a3a3 1pt solid" vAlign=center>
            <p><span style="FONT-SIZE: 10pt; FONT-FAMILY: 微软雅黑">标题</span></p>
            </td>
            <td style="BORDER-RIGHT: #a3a3a3 1pt solid; PADDING-RIGHT: 3px; BORDER-TOP: #a3a3a3 1pt solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: medium none; PADDING-TOP: 3px; BORDER-BOTTOM: #a3a3a3 1pt solid" vAlign=center>
            <p><span style="FONT-SIZE: 10pt; FONT-FAMILY: 微软雅黑">说明</span></p>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: #a3a3a3 1pt solid; PADDING-RIGHT: 3px; BORDER-TOP: medium none; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: #a3a3a3 1pt solid; WIDTH: 238px; PADDING-TOP: 3px; BORDER-BOTTOM: #a3a3a3 1pt solid" vAlign=center>
            <p><span style="FONT-SIZE: 10pt; FONT-FAMILY: 微软雅黑">分析栈和属性栈</span></p>
            </td>
            <td style="BORDER-RIGHT: #a3a3a3 1pt solid; PADDING-RIGHT: 3px; BORDER-TOP: medium none; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: medium none; WIDTH: 700px; PADDING-TOP: 3px; BORDER-BOTTOM: #a3a3a3 1pt solid; HEIGHT: 78px" vAlign=center>
            <ul>
                <li><span style="FONT-SIZE: 10pt"><span style="FONT-FAMILY: 微软雅黑">分析栈：保存当前的文法符号，即，终结符或非终结符。</span> </span>
                <li><span style="FONT-SIZE: 10pt"><span style="FONT-FAMILY: 微软雅黑">属性栈：保存当前文法符号对应的数据（类似'<span style="COLOR: maroon">属性文法</span>'中的属性），在</span> Parser Generator <span style="FONT-FAMILY: 微软雅黑">中该数据类型为</span> YYSTYPE <span style="FONT-FAMILY: 微软雅黑">，用户可以自己定义该类型。</span></span></li>
            </ul>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: #a3a3a3 1pt solid; PADDING-RIGHT: 3px; BORDER-TOP: medium none; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: #a3a3a3 1pt solid; PADDING-TOP: 3px; BORDER-BOTTOM: #a3a3a3 1pt solid" vAlign=center>
            <p><span style="FONT-SIZE: 10pt; FONT-FAMILY: 微软雅黑"><span style="COLOR: maroon">%token</span> &lt;value&gt; NUMBER</span></p>
            </td>
            <td style="BORDER-RIGHT: #a3a3a3 1pt solid; PADDING-RIGHT: 3px; BORDER-TOP: medium none; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: medium none; PADDING-TOP: 3px; BORDER-BOTTOM: #a3a3a3 1pt solid" vAlign=center>
            <p><span style="FONT-SIZE: 10pt; FONT-FAMILY: 微软雅黑">用来说明文法符号和属性的关系 </span></p>
            <p><span style="FONT-SIZE: 10pt"><span style="FONT-FAMILY: 微软雅黑">NUMBER</span> <span style="FONT-FAMILY: 微软雅黑">为词法分析器中返回的一种符号类型；<br></span>&lt;value&gt;&nbsp;<span style="FONT-FAMILY: 微软雅黑">指出</span> <span style="FONT-FAMILY: 微软雅黑">NUMBER</span> <span style="FONT-FAMILY: 微软雅黑">和属性中的</span> value <span style="FONT-FAMILY: 微软雅黑">成员对应。</span></span></p>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: #a3a3a3 1pt solid; PADDING-RIGHT: 3px; BORDER-TOP: medium none; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: #a3a3a3 1pt solid; PADDING-TOP: 3px; BORDER-BOTTOM: #a3a3a3 1pt solid" vAlign=center>
            <p><span style="FONT-SIZE: 10pt; FONT-FAMILY: 微软雅黑"><span style="COLOR: maroon">%type</span> &lt;value&gt; expr</span></p>
            </td>
            <td style="BORDER-RIGHT: #a3a3a3 1pt solid; PADDING-RIGHT: 3px; BORDER-TOP: medium none; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: medium none; PADDING-TOP: 3px; BORDER-BOTTOM: #a3a3a3 1pt solid" vAlign=center>
            <p><span style="FONT-SIZE: 10pt"><span style="FONT-FAMILY: 微软雅黑">用来指明非终结符</span> expr <span style="FONT-FAMILY: 微软雅黑">对应于属性中的</span> value <span style="FONT-FAMILY: 微软雅黑">成员</span></span></p>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: #a3a3a3 1pt solid; PADDING-RIGHT: 3px; BORDER-TOP: medium none; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: #a3a3a3 1pt solid; PADDING-TOP: 3px; BORDER-BOTTOM: #a3a3a3 1pt solid" vAlign=center>
            <p><span style="FONT-SIZE: 10pt; FONT-FAMILY: 微软雅黑">符号的顺序和优先级</span></p>
            </td>
            <td style="BORDER-RIGHT: #a3a3a3 1pt solid; PADDING-RIGHT: 3px; BORDER-TOP: medium none; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: medium none; PADDING-TOP: 3px; BORDER-BOTTOM: #a3a3a3 1pt solid" vAlign=center>
            <p><span style="FONT-SIZE: 10pt"><span style="FONT-FAMILY: 微软雅黑">按定义的顺序，由低到高；即，越靠后的符号，优先级越高，例如：<br></span><span style="COLOR: red">%right</span> '=' </span></p>
            <p><span style="FONT-SIZE: 10pt"><span style="COLOR: red">%left</span> &nbsp;&nbsp;'+', '-' </span></p>
            <p><span style="FONT-SIZE: 10pt"><span style="COLOR: red">%left</span> &nbsp;&nbsp;'*', '/' </span></p>
            <p><span style="FONT-SIZE: 10pt"><span style="COLOR: red">%right</span> UMINUS</span></p>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: #a3a3a3 1pt solid; PADDING-RIGHT: 3px; BORDER-TOP: medium none; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: #a3a3a3 1pt solid; PADDING-TOP: 3px; BORDER-BOTTOM: #a3a3a3 1pt solid" vAlign=center>
            <p><span style="FONT-SIZE: 10pt"><span style="FONT-FAMILY: 微软雅黑">。。。<br>| '-' expr <span style="COLOR: red">%prec</span></span> <span style="COLOR: red; FONT-FAMILY: 微软雅黑">UMINUS</span> <span style="FONT-FAMILY: 微软雅黑">{ $$ = -$2; }<br>。。。</span></span></p>
            </td>
            <td style="BORDER-RIGHT: #a3a3a3 1pt solid; PADDING-RIGHT: 3px; BORDER-TOP: medium none; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: medium none; PADDING-TOP: 3px; BORDER-BOTTOM: #a3a3a3 1pt solid" vAlign=center>
            <p><span style="FONT-SIZE: 10pt"><span style="FONT-FAMILY: 微软雅黑">用</span> <span style="COLOR: red; FONT-FAMILY: 微软雅黑">%prec</span> <span style="FONT-FAMILY: 微软雅黑">指定本条规则的优先级。本例中，指明 '-' 和右边的表达式结合时，优先级和</span> <span style="COLOR: red; FONT-FAMILY: 微软雅黑">UMINUS</span> <span style="FONT-FAMILY: 微软雅黑">相同；而注意到，UMINUS</span> <span style="FONT-FAMILY: 微软雅黑">在之前定义为比其他四则运算符优先！</span></span></p>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: #a3a3a3 1pt solid; PADDING-RIGHT: 3px; BORDER-TOP: medium none; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: #a3a3a3 1pt solid; PADDING-TOP: 3px; BORDER-BOTTOM: #a3a3a3 1pt solid" vAlign=center>
            <p><span style="FONT-SIZE: 10pt; FONT-FAMILY: 微软雅黑">规约过程中的文法符号和属性引用</span></p>
            </td>
            <td style="BORDER-RIGHT: #a3a3a3 1pt solid; PADDING-RIGHT: 3px; BORDER-TOP: medium none; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: medium none; PADDING-TOP: 3px; BORDER-BOTTOM: #a3a3a3 1pt solid" vAlign=center>
            <div>
            <table style="BORDER-COLLAPSE: collapse" border=0>
                <colgroup>
                <col style="WIDTH: 56px">
                <col style="WIDTH: 247px"></colgroup>
                <tbody vAlign=top>
                    <tr>
                        <td style="PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; PADDING-TOP: 3px" vAlign=center>
                        <p><span style="FONT-SIZE: 10pt; COLOR: red">$$</span></p>
                        </td>
                        <td style="PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; PADDING-TOP: 3px" vAlign=center>
                        <p><span style="FONT-SIZE: 10pt; FONT-FAMILY: 微软雅黑">：当前规约表达式的结果</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td style="PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; PADDING-TOP: 3px" vAlign=center>
                        <p><span style="FONT-SIZE: 10pt"><span style="COLOR: red">$1<span style="FONT-FAMILY: 微软雅黑">，</span>$2&#8230;</span> </span></p>
                        </td>
                        <td style="PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; PADDING-TOP: 3px" vAlign=center>
                        <p><span style="FONT-SIZE: 10pt; FONT-FAMILY: 微软雅黑">：从左至右依次表示规约表达式中的符号</span></p>
                        </td>
                    </tr>
                </tbody>
            </table>
            </div>
            <p><span style="FONT-SIZE: 10pt"><span style="FONT-FAMILY: 微软雅黑">注意：如果文法属性为自定义结构，通过</span>$<span style="FONT-FAMILY: 微软雅黑">引用时，其值和符号声明中的</span> &lt;xxxx&gt; <span style="FONT-FAMILY: 微软雅黑">成员对应。例如：</span> </span></p>
            <p><span style="FONT-SIZE: 10pt; FONT-FAMILY: 微软雅黑"><span style="COLOR: maroon">%token</span> &lt;value&gt; NUMBER</span></p>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: #a3a3a3 1pt solid; PADDING-RIGHT: 3px; BORDER-TOP: medium none; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: #a3a3a3 1pt solid; PADDING-TOP: 3px; BORDER-BOTTOM: #a3a3a3 1pt solid" vAlign=center>
            <p><span style="FONT-SIZE: 10pt; FONT-FAMILY: 微软雅黑">修改默认的输入源</span></p>
            </td>
            <td style="BORDER-RIGHT: #a3a3a3 1pt solid; PADDING-RIGHT: 3px; BORDER-TOP: medium none; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: medium none; PADDING-TOP: 3px; BORDER-BOTTOM: #a3a3a3 1pt solid" vAlign=center>
            <p><span style="FONT-SIZE: 10pt"><span style="FONT-FAMILY: 微软雅黑">重载</span> <span style="COLOR: red"><span style="FONT-FAMILY: 微软雅黑">yylexer</span>::<span style="FONT-FAMILY: 微软雅黑">yygetchar</span>()</span> <span style="FONT-FAMILY: 微软雅黑">虚函数；而不是之前认为的</span> <span style="FONT-FAMILY: 微软雅黑">yylexer</span>::<span style="FONT-FAMILY: 微软雅黑">yyinput</span>() <span style="FONT-FAMILY: 微软雅黑">！</span></span></p>
            </td>
        </tr>
    </tbody>
</table>
</div>
<img src ="http://www.cppblog.com/flyinghare/aggbug/93323.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/flyinghare/" target="_blank">会飞的兔子</a> 2009-08-14 15:26 <a href="http://www.cppblog.com/flyinghare/archive/2009/08/14/93323.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>