<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://zhangyu810214.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fzhangyu810214.spaces.live.com%2fblog%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>张宇: Blog</title><description /><link>http://zhangyu810214.spaces.live.com/blog</link><language>en-US</language><pubDate>Tue, 21 Oct 2008 14:52:37 GMT</pubDate><lastBuildDate>Tue, 21 Oct 2008 14:52:37 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://zhangyu810214.spaces.live.com/feed.rss</cf:parentRSS><live:type>blog</live:type><live:identity><live:id>-28663429770797888</live:id><live:alias>zhangyu810214</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>去除衣服污渍的38招</title><link>http://zhangyu810214.spaces.live.com/Blog/cns!FF9A2AC332779CC0!120.entry</link><description>&lt;div&gt;同样一套精美漂亮的服装，有的人穿的时间长，且能常穿常新，风采不减。而有的人却恰好相反，穿着时间不长，却已斑迹点点、周身皱福、白色变黄。这里面的奥妙，就在于对服装是如何保护的，其中去污洗熨是关键。也有的人一双皮鞋穿不了多久，便褪色变形、“满身疮痰”。皮鞋应当怎样养护，旧皮鞋能不能翻新“回春”呢?下面就服装以及鞋袜、首饰等6个分类、119个项目，向读者介绍179个&lt;a&gt;&lt;u&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;小窍门&lt;/font&gt;&lt;/strong&gt;&lt;/u&gt;&lt;/a&gt;，就服饰的去污、洗涤、熨烫、修补。保管保养等几个方面，比较详细地讲述了诀窍，为读者提供服务。&lt;br&gt;服装除污&lt;br&gt;1．除咖啡、茶渍三法&lt;br&gt;&lt;a&gt;&lt;u&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;衣服&lt;/font&gt;&lt;/strong&gt;&lt;/u&gt;&lt;/a&gt;上洒上咖啡或茶水，如果立丑口脱下用热水搓洗，便可洗干净。如果&lt;a&gt;&lt;u&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;污渍&lt;/font&gt;&lt;/strong&gt;&lt;/u&gt;&lt;/a&gt;已干，那就要用较复杂的办法洗涤了。&lt;br&gt;①用甘油和蛋黄的混合溶液涂拭污渍处，待稍千后，再用清水洗涤即可。&lt;br&gt;②先用甘油涂在污渍处，再撒上一些硼酸粉，然后浸入开采中洗涤即可除污渍。  &lt;br&gt;③用稀氨水、硼砂和温开水涂擦，也可除去污渍。若是羊毛混纺织品，不需滴氨水，只用10％的甘油溶液洗涤即可。&lt;br&gt;2．除酒渍  &lt;br&gt;如果是刚染上的色酒、啤酒或其他酒渍，用清水就能洗去。若是陈迹则必须放在加有氨水的硼砂溶液内，才能&lt;a&gt;&lt;u&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;去除&lt;/font&gt;&lt;/strong&gt;&lt;/u&gt;&lt;/a&gt;。&lt;br&gt;3．除果汁渍兰法  &lt;br&gt;①新染上的果汁，可先撤些食盐，轻轻地用水润湿，然后浸在肥皂水中洗涤。&lt;br&gt;②对于轻微的果渍可用冷水洗除，一次洗不净，再洗一次，洗净为止。污染较重的，可用稀氨水(1份氨水冲20份水)来中和果汁中的有机酸，再用肥皂洗净。呢绒衣服可用酒石酸溶液洗：丝绸可用柠檬酸或用肥皂、酒精溶液来搓洗。&lt;br&gt;③在果汁渍上滴几滴食醋，用手揉搓几次，再用清水洗净。&lt;br&gt;4．除柿子渍  &lt;br&gt;新渍，用葡萄酒加浓盐水一起揉搓，再用肥皂和水清洗，或用5％稀氨水和洗涤剂一起揉搓，然后用水漂洗干净。丝绸织物则用10％柠檬酸溶液洗涤。&lt;br&gt;5．除泡泡糖渍&lt;br&gt;用汽油或酒精擦洗即可去除。&lt;br&gt;6．除口香糖渍&lt;br&gt;将粘有口香糖而难以洗除的&lt;a&gt;&lt;u&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;衣物&lt;/font&gt;&lt;/strong&gt;&lt;/u&gt;&lt;/a&gt;，放入冰箱的冷藏格中冷冻一段时间，糖渍变脆，用小刀轻轻一刮，就能剥离干净。&lt;br&gt;7．除冰淇淋溃   &lt;br&gt;用汽油即可擦洗干净。  &lt;br&gt;8．除酱油渍   &lt;br&gt;在温&lt;a&gt;&lt;u&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;洗衣&lt;/font&gt;&lt;/strong&gt;&lt;/u&gt;&lt;/a&gt;粉溶液中加少量氨水和硼砂，再将织品搓洗，即能去除。    &lt;br&gt;9．除番茄酱渍．    &lt;br&gt;将干的污渍刮去后，用温洗衣粉溶液洗净。 &lt;br&gt;10·除鸡蛋渍&lt;br&gt;如果鸡蛋液污染了衣服，应等污迹干后，再用蛋黄和甘油融混合液擦拭，然后再把衣服放到水中清洗即可。&lt;br&gt;11．除动植物油渍&lt;br&gt;衣服上被动植物油污染后，挤点&lt;a&gt;&lt;u&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;牙膏&lt;/font&gt;&lt;/strong&gt;&lt;/u&gt;&lt;/a&gt;于渍处，轻轻擦几陬，再用清水搓洗，油污即可清除。&lt;br&gt;12．除咖喱油渍&lt;br&gt;用5％浓度的次氯酸钠洗后，再用清水洗净。&lt;br&gt;13．除蟹黄渍&lt;br&gt;可在已煮熟的蟹中取出白鳃搓拭，再放在冷水中用肥皂洗涤。&lt;br&gt;14．除圆珠笔油渍&lt;br&gt;将污渍用冷水浸湿后，用苯丙酮或四氯化碳轻轻擦去，再用洗涤剂、清水洗净。不能用汽油洗。也可涂些牙膏加少量肥皂轻轻揉搓，如有残痕，再用酒精擦拭。&lt;br&gt;15．除红墨水渍&lt;br&gt;先用洗涤剂洗，然后用10％的酒精擦洗，再用清水洗净。也可用0．25％的高锰酸钾溶液清除。用芥子末涂在红墨水迹上面，经过几小时，红墨水迹也会消退。&lt;br&gt;16．除蓝墨水渍&lt;br&gt;新污染的衣物可先在冷水中浸泡，然后用肥皂搓洗。陈迹则要放在2％的草酸溶液中浸泡几分钟，然后用洗涤剂洗除。&lt;br&gt;17．除墨溃    &lt;br&gt;先用清水洗，再用洗涤剂和饭粒一起搓揉，然后用纱布或豫脂棉一点一点粘吸。残迹可用氨水洗涤。也可用牙膏、牛奶等擦洗，再用清水深净。&lt;br&gt;18．除复写纸、蜡笔色渍   &lt;br&gt;先在温热的洗涤剂溶液中搓洗，尔后用汽油、煤油洗，用酒精擦除。   &lt;br&gt;19．除印油渍  &lt;br&gt;用肥皂和汽油的混合液(不含水)浸漂或涂在色渍上，轻搓洗，使其溶解脱落，再用肥皂水洗涤，用清水漂净。若经过肥皂洗涤，油脂已除，颜色尚在，应作褪色处理。要用漂白粉自保险粉(用于真丝衣物的)来消除颜色渍。&lt;br&gt;20．除汗渍五法&lt;br&gt;①先用喷雾器在有汗渍的衣服上喷上一些食醋，过一4儿再洗，效果特别好。&lt;br&gt;②将冬瓜一块捣烂，倒进布袋中，将其液汁挤出，用来洗沾有汗渍的衣服，然后再用清水漂净。    &lt;br&gt;③在清水里加几滴氨水，把有汗渍的衣服放进去漂洗一下，再用清水洗净。&lt;br&gt;④把汗渍衣服放在5％的食盐水中，浸泡1小时，再轻揉搓，用清水洗净。&lt;br&gt;⑤把生姜切成碎末，放在衣服汗渍上搓洗，然后用清水女净。    &lt;br&gt;21．除血、奶渍二法&lt;br&gt;①胡萝卜研碎拌上盐，涂在沾有血、奶渍的衣服上揉搓再用清水漂净&lt;br&gt;②衣服上沾有血、奶迹，先用生姜擦洗，然后蘸冷水搓拶可不留痕迹。    &lt;br&gt;22．除尿渍       &lt;br&gt;刚污染的尿渍可用水洗除。着是陈迹，可用温热的洗衣％(肥皂)溶液或淡氨水、或硼砂溶液搓洗，再用清水漂净。&lt;br&gt;23．除油渍 &lt;br&gt;翻毛衣，若沾上油渍，可在油渍处适当撒些生面粉，再棕刷顺着毛擦刷，直至油渍去掉。然后，用藤条之类拍打毛隐，去掉余粉，使毛绒蓬松清洁。滑雪衫若沾上油渍，用冷水把少许面粉冲调成浆糊状，涂油渍处，几小时后，用刷子蘸水刷去粉末，油渍就会消失。&lt;br&gt;24．除黄泥渍&lt;br&gt;衣裤上有黄泥斑痕，先用生姜汁涂擦，再用清水洗涤，黄簿会立刻褪去。&lt;br&gt;25．除胶类溃    &lt;br&gt;灯芯绒衣物上沾有胶类等物时，可用清水浸泡后轻轻擦融，切忌干搓，以防拔掉绒毛。&lt;br&gt;26．除霉渍四法&lt;br&gt;①梅雨季节．，洗好的衣服不易晒干，常有一股难闻的霉昧。若将衣服放在加有少量醋和牛奶的水中再洗一遍，便能除去霉味。若收藏的衣服或床单有发黄的地方，可涂抹些牛奶，到太阳下晒几个小时，再用通常的方法洗一遍即可。&lt;br&gt;②如果呢绒织物上有了霉迹，须先将其挂在阴凉通风处晾干，再用棉花蘸少量的汽油在霉迹处反复擦拭即可。&lt;br&gt;③新长的霉斑，先用刷子刷，再用酒精清除。陈旧霉斑需涂上氨水，放置一会儿，再涂高锰酸钾溶液，最后用亚硫酸氢钠溶液浸湿并用水冲洗。以上处理过程，要防止霉斑扩散。&lt;br&gt;④皮件(皮衣、皮手套等)上长了霉，不宜用湿布揩，最好晒干(或&lt;a&gt;&lt;u&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;烘干&lt;/font&gt;&lt;/strong&gt;&lt;/u&gt;&lt;/a&gt;)后把霉刷掉。为了防霉，可配制一些药水，成分是对硝基酚(可在化工商店买到)3份、肥皂10份、水100‰，溶解后涂在皮件上，晾干即可。&lt;br&gt;27．除锈渍&lt;br&gt;用1％的草酸溶液擦拭衣服上的锈渍处，再用清水漂洗。&lt;br&gt;28．除漆渍二法&lt;br&gt;①乘油漆未干，先用煤油反复涂擦，再涂擦一些稀醋l(不用醋酸也可以，只是效果要差些)，最后经水洗，即可除去干了的油漆迹较难除去，有一种简单的方法：锅内加2．5公斤水、100克碱面和少许石灰，把衣服放到里面煮20分钟，取出后用肥皂洗净，油漆便会脱落。要注意的是：有色的衣服最不用此法，以免脱色。&lt;br&gt;②衣物上不慎沾上漆渍，用汽油、香蕉水(乙酸乙脂)l除，会影响衣料&lt;a&gt;&lt;u&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;质地&lt;/font&gt;&lt;/strong&gt;&lt;/u&gt;&lt;/a&gt;。最好的办法是用清凉油涂拭：在漆渍处正反面涂清凉油少许，隔几分钟，用棉花球顺衣料的纹擦拭会收到理想的效果。&lt;br&gt;29．除桐油渍&lt;br&gt;可用汽油、煤油或洗涤剂擦洗，也可用豆腐渣擦洗，然E用清水漂净。&lt;br&gt;30．除柏油渍&lt;br&gt;可用汽油和煤油擦洗。如没有汽油或煤油，也可将花4油、机油涂在被沾污处，待柏油溶解后，就容易擦掉了。&lt;br&gt;31．除蜡烛油渍&lt;br&gt;衣服上沾上了蜡烛油，用一般洗涤办法是洗不掉的。可；用刀片轻轻刮去衣服表面的蜡质，然后将衣服平放在桌子上让带有蜡油的一面朝上，在上面放一两张吸附纸，用熨斗反复熨几下即可。&lt;br&gt;32．除烟油渍二法&lt;br&gt;①衣服上刚滴上了烟筒油；应立即用汽油搓洗，如搓洗l仍留有色斑，可用2％的草酸液擦拭，再用清水洗净。&lt;br&gt;②一旦衣物上滴上烟油，要速取炉灰一小撮；均匀撤在上面，待片刻炉灰干后，清去炉灰，烟油自掉。如果衣物上的烟油。已干，而且时间较久，可先用清水浸湿油迹处，然后再取炉灰适量撒在上面，干后油渍即除。&lt;br&gt;33．除沥青渍&lt;br&gt;先用小刀将衣服沾有的沥青轻轻刮去，然后用四氯化碳融(药店有售)路浸一会，再放入热水中揉洗。还可用松节油反复涂擦多次，再浸入热的肥皂水中洗涤即可。&lt;br&gt;34．除青草渍&lt;br&gt;用食盐水(1升水加100克盐)浸泡，即可除掉。&lt;br&gt;35．除红药水渍  &lt;br&gt;先用温洗衣粉溶液洗，再分别用草酸、高锰酸钾处理，最后用草酸脱色，用清水漂净。&lt;br&gt;36．除碘酒渍&lt;br&gt;先用亚硫酸钠溶液(温的)处理，再用清水反复漂洗。也可用酒精擦洗。&lt;br&gt;37．除药膏渍   &lt;br&gt;先用汽油、煤油刷洗，也可用酒精或烧酒搓擦，待起污后用洗涤剂浸洗，再用清水漂净。   &lt;br&gt;38．除高锰酸钾渍  &lt;br&gt;先用柠檬酸或2％的草酸溶液洗涤，后用清水漂净。&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-28663429770797888&amp;page=RSS%3a+%e5%8e%bb%e9%99%a4%e8%a1%a3%e6%9c%8d%e6%b1%a1%e6%b8%8d%e7%9a%8438%e6%8b%9b&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=zhangyu810214.spaces.live.com&amp;amp;GT1=zhangyu810214"&gt;</description><comments>http://zhangyu810214.spaces.live.com/Blog/cns!FF9A2AC332779CC0!120.entry#comment</comments><guid isPermaLink="true">http://zhangyu810214.spaces.live.com/Blog/cns!FF9A2AC332779CC0!120.entry</guid><pubDate>Wed, 13 Sep 2006 15:04:08 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://zhangyu810214.spaces.live.com/blog/cns!FF9A2AC332779CC0!120/comments/feed.rss</wfw:commentRss><wfw:comment>http://zhangyu810214.spaces.live.com/Blog/cns!FF9A2AC332779CC0!120.entry#comment</wfw:comment><dcterms:modified>2006-09-13T15:04:08Z</dcterms:modified></item><item><title>Interpreter设计模式</title><link>http://zhangyu810214.spaces.live.com/Blog/cns!FF9A2AC332779CC0!117.entry</link><description>&lt;div&gt;&amp;lt;?PHP&lt;/div&gt;
&lt;div&gt;/**&lt;/div&gt;
&lt;div&gt; *Interpreter设计模式（PHP）&lt;/div&gt;
&lt;div&gt; &lt;a href="mailto:*@version 2006-9-11"&gt;*@version 2006-9-11&lt;/a&gt;&lt;/div&gt;
&lt;div&gt; &lt;a href="mailto:*@author  zhangyu &amp;lt;zy28511116@163.com"&gt;*@author  zhangyu &amp;lt;zy28511116@163.com&lt;/a&gt;&amp;gt;&lt;/div&gt;
&lt;div&gt; */&lt;br&gt;interface Node {&lt;br&gt;    public function parse(Context $context);&lt;br&gt;    public function execute();&lt;br&gt;}&lt;br&gt; &lt;br&gt;// &amp;lt;program&amp;gt; ::= PROGRAM &amp;lt;command list&amp;gt;&lt;br&gt;class ProgramNode implements Node {&lt;br&gt;    private $commandListNode; //Node&lt;br&gt;                                                                                                &lt;br&gt;    public function parse(Context $context) {&lt;br&gt;        $context-&amp;gt;skipToken(&amp;quot;PROGRAM&amp;quot;);&lt;br&gt;        $this-&amp;gt;commandListNode = new CommandListNode();&lt;br&gt;        $this-&amp;gt;commandListNode-&amp;gt;parse($context);&lt;br&gt;    }&lt;br&gt;                                                                                                &lt;br&gt;    public function execute() {&lt;br&gt;        $this-&amp;gt;commandListNode-&amp;gt;execute();&lt;br&gt;    }&lt;br&gt;                                                                                                &lt;br&gt;    public function toString() {&lt;br&gt;        return &amp;quot;[PROGRAM &amp;quot; . $this-&amp;gt;commandListNode . &amp;quot;]&amp;quot;;&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;                                                                                &lt;br&gt;// &amp;lt;command list&amp;gt; ::= &amp;lt;command&amp;gt;* END&lt;br&gt;class CommandListNode implements Node {&lt;br&gt;    private $list = array(); //Vector&lt;br&gt;    private $commandNode;  //Node&lt;br&gt; &lt;br&gt;    public function parse(Context $context) {&lt;br&gt;        while (1) {&lt;br&gt;            if ($context-&amp;gt;currentToken() == null) {&lt;br&gt;                echo &amp;quot;Missing 'END'&amp;quot;;&lt;br&gt;                break;&lt;br&gt;            } else if ($context-&amp;gt;currentToken()==&amp;quot;END&amp;quot;) {&lt;br&gt;                $context-&amp;gt;skipToken(&amp;quot;END&amp;quot;);&lt;br&gt;                break;&lt;br&gt;            } else {&lt;br&gt;                $this-&amp;gt;commandNode = new CommandNode();&lt;br&gt;                $this-&amp;gt;commandNode-&amp;gt;parse($context);&lt;br&gt;                $this-&amp;gt;list[] = $this-&amp;gt;commandNode;&lt;br&gt;            }&lt;br&gt;        }&lt;br&gt;    }&lt;br&gt; &lt;br&gt;    public function execute() {&lt;br&gt;        foreach($this-&amp;gt;list as $key =&amp;gt; $value) {&lt;br&gt;            $value-&amp;gt;execute();&lt;br&gt;        }&lt;br&gt;    } &lt;br&gt; &lt;br&gt;   public function toString() {&lt;br&gt;        return &amp;quot;&amp;quot; . implode(&amp;quot;,&amp;quot;, $this-&amp;gt;list);&lt;br&gt;   }&lt;br&gt;}&lt;br&gt; &lt;br&gt;// &amp;lt;command&amp;gt; ::= &amp;lt;repeat command&amp;gt; | &amp;lt;primitive command&amp;gt;&lt;br&gt;class CommandNode implements Node {&lt;br&gt;    private $node;  //Node&lt;br&gt;                                                                                                &lt;br&gt;    public function parse(Context $context) {&lt;br&gt;        if ($context-&amp;gt;currentToken()==&amp;quot;REPEAT&amp;quot;) {&lt;br&gt;            $this-&amp;gt;node = new RepeatCommandNode();&lt;br&gt;            $this-&amp;gt;node-&amp;gt;parse($context);&lt;br&gt;        } else {&lt;br&gt;            $this-&amp;gt;node = new PrimitiveCommandNode();&lt;br&gt;            $this-&amp;gt;node-&amp;gt;parse($context);&lt;br&gt;        }&lt;br&gt;    }&lt;br&gt;                                                                                                &lt;br&gt;    public function execute() {&lt;br&gt;        $this-&amp;gt;node-&amp;gt;execute();&lt;br&gt;    }&lt;br&gt;                                                                                                &lt;br&gt;    public function toString() {&lt;br&gt;        return $this-&amp;gt;node-&amp;gt;toString();&lt;br&gt;    }&lt;br&gt;}&lt;br&gt; &lt;br&gt;// &amp;lt;primitive command&amp;gt; ::= PRINT &amp;lt;string&amp;gt; | SPACE | BREAK | LINEBREAK&lt;br&gt;class PrimitiveCommandNode implements Node {&lt;br&gt;    private $name;&lt;br&gt;    private $text;&lt;br&gt; &lt;br&gt;    public function parse(Context $context) {&lt;br&gt;        $this-&amp;gt;name = $context-&amp;gt;currentToken();&lt;br&gt;        $context-&amp;gt;skipToken($this-&amp;gt;name);&lt;br&gt;        if (!$this-&amp;gt;name==&amp;quot;PRINT&amp;quot; &amp;amp;&amp;amp; !$this-&amp;gt;name==&amp;quot;BREAK&amp;quot; &amp;amp;&amp;amp; !$this-&amp;gt;name==&amp;quot;LINEBREAK&amp;quot; &amp;amp;&amp;amp; !$this-&amp;gt;name==&amp;quot;SPACE&amp;quot;) {&lt;br&gt;            echo &amp;quot;Undefined Command&amp;quot;;&lt;br&gt;        }&lt;br&gt;        &lt;br&gt;        if ($this-&amp;gt;name==(&amp;quot;PRINT&amp;quot;)) {&lt;br&gt;            $this-&amp;gt;text = $context-&amp;gt;currentToken();&lt;br&gt;            $context-&amp;gt;nextToken();&lt;br&gt;        }&lt;br&gt;    }&lt;br&gt; &lt;br&gt;    public function execute() {&lt;br&gt;        if($this-&amp;gt;name==(&amp;quot;PRINT&amp;quot;))&lt;br&gt;            echo $this-&amp;gt;text;&lt;br&gt;        else if($this-&amp;gt;name==(&amp;quot;SPACE&amp;quot;))&lt;br&gt;            echo(&amp;quot; &amp;quot;);&lt;br&gt;        else if($this-&amp;gt;name==(&amp;quot;BREAK&amp;quot;))&lt;br&gt;            echo &amp;quot;&amp;lt;br&amp;gt;&amp;quot;;&lt;br&gt;        else if($this-&amp;gt;name==(&amp;quot;LINEBREAK&amp;quot;))&lt;br&gt;            echo &amp;quot;&amp;lt;br&amp;gt;------------------------------&amp;lt;br&amp;gt;&amp;quot;;&lt;br&gt;    } &lt;br&gt; &lt;br&gt;    public function toString() {&lt;br&gt;        return $this-&amp;gt;name;&lt;br&gt;    }&lt;br&gt;}&lt;br&gt; &lt;br&gt;class RepeatCommandNode implements Node {&lt;br&gt;    private $number;&lt;br&gt;    private $commandListNode;  //Node&lt;br&gt;                                                                                                &lt;br&gt;    public function parse(Context $context) {&lt;br&gt;        $context-&amp;gt;skipToken(&amp;quot;REPEAT&amp;quot;);&lt;br&gt;        $this-&amp;gt;number = $context-&amp;gt;currentNumber();&lt;br&gt;        $context-&amp;gt;nextToken();&lt;br&gt;        $this-&amp;gt;commandListNode = new CommandListNode();&lt;br&gt;        $this-&amp;gt;commandListNode-&amp;gt;parse($context);&lt;br&gt;    }&lt;br&gt;                                                                                                &lt;br&gt;    public function execute() {&lt;br&gt;        for($i = 0; $i &amp;lt; $this-&amp;gt;number; $i++) {&lt;br&gt;            $this-&amp;gt;commandListNode-&amp;gt;execute();&lt;br&gt;        }&lt;br&gt;    }&lt;br&gt;                                                                                                &lt;br&gt;    public function toString() {&lt;br&gt;        return &amp;quot;[REPEAT &amp;quot; . $this-&amp;gt;number . &amp;quot; &amp;quot; . $this-&amp;gt;commandListNode . &amp;quot;]&amp;quot;;&lt;br&gt;    }&lt;br&gt;}&lt;/div&gt;
&lt;div&gt;class Context {&lt;br&gt;    private $tokenizer=array();  //StringTokenizer&lt;br&gt;    private $currentToken;&lt;br&gt; &lt;br&gt;    public function Context($text) {&lt;br&gt;        $this-&amp;gt;tokenizer = explode(&amp;quot; &amp;quot;, $text);&lt;br&gt;        $this-&amp;gt;nextToken();&lt;br&gt;    }&lt;br&gt; &lt;br&gt;    public function nextToken() {&lt;br&gt;        $this-&amp;gt;currentToken = array_shift($this-&amp;gt;tokenizer);&lt;br&gt;        return $this-&amp;gt;currentToken;&lt;br&gt;    }&lt;br&gt; &lt;br&gt;    public function currentToken() {&lt;br&gt;        return $this-&amp;gt;currentToken;&lt;br&gt;    }&lt;br&gt; &lt;br&gt;    public function skipToken($token) {&lt;br&gt;        if (!($token == $this-&amp;gt;currentToken)) {&lt;br&gt;            echo &amp;quot;Warning: &amp;quot; . $token . &amp;quot; is expected, but &amp;quot; . $this-&amp;gt;currentToken . &amp;quot; is found.&amp;quot;;&lt;br&gt;        }&lt;br&gt;        $this-&amp;gt;nextToken();&lt;br&gt;    }&lt;br&gt; &lt;br&gt;    public function currentNumber() {&lt;br&gt;        $number = 0;&lt;br&gt;        $number = $this-&amp;gt;currentToken;&lt;br&gt;        return $number;&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;                                                                                                &lt;br&gt;$arr = array();&lt;br&gt;$arr[] = &amp;quot;PROGRAM&amp;quot;;&lt;br&gt;$arr[] = &amp;quot;PRINT begin&amp;quot;;&lt;br&gt;$arr[] = &amp;quot;BREAK&amp;quot;;&lt;br&gt;$arr[] = &amp;quot;REPEAT 3&amp;quot;;&lt;br&gt;$arr[] = &amp;quot;REPEAT 2&amp;quot;;&lt;br&gt;$arr[] = &amp;quot;PRINT dog SPACE&amp;quot;;&lt;br&gt;$arr[] = &amp;quot;PRINT is SPACE&amp;quot;;&lt;br&gt;$arr[] = &amp;quot;PRINT a SPACE&amp;quot;;&lt;br&gt;$arr[] = &amp;quot;PRINT animal&amp;quot;;&lt;br&gt;$arr[] = &amp;quot;BREAK&amp;quot;;&lt;br&gt;$arr[] = &amp;quot;END&amp;quot;;&lt;br&gt;$arr[] = &amp;quot;END&amp;quot;;&lt;br&gt;$arr[] = &amp;quot;END&amp;quot;;&lt;/div&gt;
&lt;div&gt;$text = &amp;quot;PROGRAM REPEAT 4 LINEBREAK PRINT justin SPACE PRINT momor LINEBREAK END END&amp;quot;;&lt;br&gt;//$text = implode(&amp;quot; &amp;quot;, $arr);&lt;/div&gt;
&lt;div&gt;$node = new ProgramNode();&lt;br&gt;$node-&amp;gt;parse(new Context($text));&lt;br&gt;$node-&amp;gt;execute();&lt;br&gt;?&amp;gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-28663429770797888&amp;page=RSS%3a+Interpreter%e8%ae%be%e8%ae%a1%e6%a8%a1%e5%bc%8f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=zhangyu810214.spaces.live.com&amp;amp;GT1=zhangyu810214"&gt;</description><comments>http://zhangyu810214.spaces.live.com/Blog/cns!FF9A2AC332779CC0!117.entry#comment</comments><guid isPermaLink="true">http://zhangyu810214.spaces.live.com/Blog/cns!FF9A2AC332779CC0!117.entry</guid><pubDate>Mon, 11 Sep 2006 08:56:52 GMT</pubDate><slash:comments>3</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://zhangyu810214.spaces.live.com/blog/cns!FF9A2AC332779CC0!117/comments/feed.rss</wfw:commentRss><wfw:comment>http://zhangyu810214.spaces.live.com/Blog/cns!FF9A2AC332779CC0!117.entry#comment</wfw:comment><dcterms:modified>2006-09-11T08:56:52Z</dcterms:modified></item><item><title>Iterator模式 2006年5月16日</title><link>http://zhangyu810214.spaces.live.com/Blog/cns!FF9A2AC332779CC0!112.entry</link><description>&lt;div&gt;&amp;lt;?php&lt;br&gt;/**&lt;/div&gt;
&lt;div&gt; * @Iterator功能演示&lt;/div&gt;
&lt;div&gt; * @author   张宇  2006-5-16&lt;/div&gt;
&lt;div&gt; * @version  1.0&lt;/div&gt;
&lt;div&gt; */&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; interface i_Aggregate  //集合类&lt;br&gt; {&lt;br&gt;     function iterator(); //Iterator`э&lt;br&gt;   }&lt;br&gt;   &lt;br&gt;   interface i_Iterator&lt;br&gt;   {&lt;br&gt;     function hasNext(); //boolean类型&lt;br&gt;     function next(); //Object类型&lt;br&gt;   }&lt;br&gt;   &lt;br&gt;   class Student &lt;br&gt; {&lt;br&gt;    private $name;&lt;br&gt;  private $sex; //男:1  女:2&lt;br&gt; &lt;br&gt;  public function Student($pName,$pSex) //构造函数&lt;br&gt;  {&lt;br&gt;   $this-&amp;gt;name = $pName;&lt;br&gt;   $this-&amp;gt;sex = $pSex;&lt;br&gt;  }&lt;br&gt;  &lt;br&gt;  public function getName() //取得姓名&lt;br&gt;  {&lt;br&gt;   return $this-&amp;gt;name;&lt;br&gt;  }&lt;br&gt;  &lt;br&gt;  public function getSex() //取得性别&lt;br&gt;  {&lt;br&gt;   return $this-&amp;gt;sex;&lt;br&gt;  } &lt;br&gt; }&lt;br&gt; &lt;br&gt; class StudentList&lt;br&gt; {&lt;br&gt;  protected $students;  //Student[] students;&lt;br&gt;  private   $last = 0;&lt;br&gt;  &lt;br&gt;  public function StudentList($pStudentCount) //构造函数-指定学生的个数&lt;br&gt;  {&lt;br&gt;   $this-&amp;gt;students = array($pStudentCount);&lt;br&gt;  }&lt;br&gt; &lt;br&gt;  public function add(Student $pStudent) //增加一个学生&lt;br&gt;  {&lt;br&gt;   $this-&amp;gt;students[$this-&amp;gt;last] = $pStudent;&lt;br&gt;   $this-&amp;gt;last++;&lt;br&gt;  }&lt;br&gt;  &lt;br&gt;  public function getStudentAt($pIndex)  //返回某个位置的学生&lt;br&gt;  {&lt;br&gt;   return $this-&amp;gt;students[$pIndex];&lt;br&gt;  }&lt;br&gt;  &lt;br&gt;  public function getLastNum()  //返回学生的数目&lt;br&gt;  {&lt;br&gt;   return $this-&amp;gt;last;&lt;br&gt;  }&lt;br&gt; }&lt;br&gt; &lt;br&gt;   class MyStudentList extends StudentList implements i_Aggregate&lt;br&gt;   {&lt;br&gt;  public function iterator() //Iterator类型&lt;br&gt;  {&lt;br&gt;   return new MyStudentListIterator($this);&lt;br&gt;  }&lt;br&gt; }&lt;br&gt; &lt;br&gt; class MyStudentListIterator implements i_Iterator&lt;br&gt; {&lt;br&gt;  private $myStudentList; //MyStudentList类型&lt;br&gt;  private $index;&lt;br&gt;  &lt;br&gt;  public function MyStudentListIterator(MyStudentList $list)&lt;br&gt;  {&lt;br&gt;   $this-&amp;gt;myStudentList = $list;&lt;br&gt;   $this-&amp;gt;index = 0;&lt;br&gt;  }&lt;br&gt;  &lt;br&gt;  public function hasNext()&lt;br&gt;  {&lt;br&gt;   if($this-&amp;gt;myStudentList-&amp;gt;getLastNum() &amp;gt; $this-&amp;gt;index)&lt;br&gt;   {&lt;br&gt;    return true;&lt;br&gt;   }else {&lt;br&gt;    return false;&lt;br&gt;   }&lt;br&gt;  }&lt;br&gt;  &lt;br&gt;  public function next() //Student类型&lt;br&gt;  {&lt;br&gt;   $s =  $this-&amp;gt;myStudentList-&amp;gt;getStudentAt($this-&amp;gt;index); //Student类型&lt;br&gt;   $this-&amp;gt;index++;&lt;br&gt;   return $s;&lt;br&gt;  }&lt;br&gt; }&lt;br&gt; &lt;br&gt; abstract class Teacher&lt;br&gt; {&lt;br&gt;  protected $sudentList; //StudentList类的实例&lt;br&gt;  &lt;br&gt;  public abstract function createStudentList();  //建立一个学生列表&lt;br&gt;  public abstract function callStudents();  //输出student&lt;br&gt; }&lt;br&gt; &lt;br&gt; class VeteranTeacher extends Teacher&lt;br&gt; {&lt;br&gt;  private $list; //MyStudentList类型&lt;br&gt;  &lt;br&gt;  public function createStudentList()&lt;br&gt;  {&lt;br&gt;   $this-&amp;gt;list = new MyStudentList(6);&lt;br&gt;   $this-&amp;gt;list-&amp;gt;add(new Student(&amp;quot;张&amp;quot;,1));&lt;br&gt;   $this-&amp;gt;list-&amp;gt;add(new Student(&amp;quot;常&amp;quot;,2));&lt;br&gt;   $this-&amp;gt;list-&amp;gt;add(new Student(&amp;quot;刘&amp;quot;,1));&lt;br&gt;   $this-&amp;gt;list-&amp;gt;add(new Student(&amp;quot;沈&amp;quot;,1));&lt;br&gt;   $this-&amp;gt;list-&amp;gt;add(new Student(&amp;quot;李&amp;quot;,2));&lt;br&gt;   $this-&amp;gt;list-&amp;gt;add(new Student(&amp;quot;蔡&amp;quot;,1));&lt;br&gt;  }&lt;br&gt;  &lt;br&gt;  public function callStudents()&lt;br&gt;  {&lt;br&gt;   $itr = $this-&amp;gt;list-&amp;gt;iterator(); //Iterator类型&lt;br&gt;   while($itr-&amp;gt;hasNext())&lt;br&gt;   {&lt;br&gt;    echo $itr-&amp;gt;next()-&amp;gt;getName().&amp;quot;&amp;lt;br&amp;gt;&amp;quot;;&lt;br&gt;   }&lt;br&gt;  }  &lt;br&gt; }&lt;br&gt; &lt;br&gt; $you = new VeteranTeacher();&lt;br&gt; $you-&amp;gt;createStudentList();&lt;br&gt; $you-&amp;gt;callStudents();&lt;br&gt;?&amp;gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-28663429770797888&amp;page=RSS%3a+Iterator%e6%a8%a1%e5%bc%8f+2006%e5%b9%b45%e6%9c%8816%e6%97%a5&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=zhangyu810214.spaces.live.com&amp;amp;GT1=zhangyu810214"&gt;</description><comments>http://zhangyu810214.spaces.live.com/Blog/cns!FF9A2AC332779CC0!112.entry#comment</comments><guid isPermaLink="true">http://zhangyu810214.spaces.live.com/Blog/cns!FF9A2AC332779CC0!112.entry</guid><pubDate>Tue, 16 May 2006 07:47:16 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://zhangyu810214.spaces.live.com/blog/cns!FF9A2AC332779CC0!112/comments/feed.rss</wfw:commentRss><wfw:comment>http://zhangyu810214.spaces.live.com/Blog/cns!FF9A2AC332779CC0!112.entry#comment</wfw:comment><dcterms:modified>2006-05-16T07:52:19Z</dcterms:modified></item><item><title>得到当前列的列号</title><link>http://zhangyu810214.spaces.live.com/Blog/cns!FF9A2AC332779CC0!110.entry</link><description>&lt;div&gt;//得到当前列的列号&lt;br&gt;function getCurrentColNo(tdObject)&lt;br&gt;{&lt;br&gt; var tableObject = getTableRootByTd(tdObject);&lt;br&gt; var current_row_no = getCurrentRowNo(tdObject);&lt;br&gt; var current_row_td_num = tableObject.rows[current_row_no].cells.length;&lt;br&gt; for(var i=0;i&amp;lt;current_row_td_num;i++)&lt;br&gt; {&lt;br&gt;  if(tableObject.rows[current_row_no].cells[i] == tdObject)&lt;br&gt;  {&lt;br&gt;   return i;&lt;br&gt;  }&lt;br&gt; }&lt;br&gt;}&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-28663429770797888&amp;page=RSS%3a+%e5%be%97%e5%88%b0%e5%bd%93%e5%89%8d%e5%88%97%e7%9a%84%e5%88%97%e5%8f%b7&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=zhangyu810214.spaces.live.com&amp;amp;GT1=zhangyu810214"&gt;</description><category>计算机与 Internet</category><comments>http://zhangyu810214.spaces.live.com/Blog/cns!FF9A2AC332779CC0!110.entry#comment</comments><guid isPermaLink="true">http://zhangyu810214.spaces.live.com/Blog/cns!FF9A2AC332779CC0!110.entry</guid><pubDate>Mon, 17 Apr 2006 03:56:09 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://zhangyu810214.spaces.live.com/blog/cns!FF9A2AC332779CC0!110/comments/feed.rss</wfw:commentRss><wfw:comment>http://zhangyu810214.spaces.live.com/Blog/cns!FF9A2AC332779CC0!110.entry#comment</wfw:comment><dcterms:modified>2006-04-17T03:56:09Z</dcterms:modified></item><item><title>得到当前行的行号</title><link>http://zhangyu810214.spaces.live.com/Blog/cns!FF9A2AC332779CC0!106.entry</link><description>&lt;div&gt;//得到当前行的行号&lt;br&gt;function getCurrentRowNo(tdObject)&lt;br&gt;{&lt;br&gt; var tableObject = getTableRootByTd(tdObject);&lt;br&gt; for(var i=0;i&amp;lt;tableObject.rows.length;i++){&lt;br&gt;  if(tdObject.parentNode == tableObject.rows[i]){&lt;br&gt;   return i;&lt;br&gt;  }&lt;br&gt; }&lt;br&gt;}&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-28663429770797888&amp;page=RSS%3a+%e5%be%97%e5%88%b0%e5%bd%93%e5%89%8d%e8%a1%8c%e7%9a%84%e8%a1%8c%e5%8f%b7&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=zhangyu810214.spaces.live.com&amp;amp;GT1=zhangyu810214"&gt;</description><category>计算机与 Internet</category><comments>http://zhangyu810214.spaces.live.com/Blog/cns!FF9A2AC332779CC0!106.entry#comment</comments><guid isPermaLink="true">http://zhangyu810214.spaces.live.com/Blog/cns!FF9A2AC332779CC0!106.entry</guid><pubDate>Mon, 17 Apr 2006 03:49:05 GMT</pubDate><slash:comments>3</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://zhangyu810214.spaces.live.com/blog/cns!FF9A2AC332779CC0!106/comments/feed.rss</wfw:commentRss><wfw:comment>http://zhangyu810214.spaces.live.com/Blog/cns!FF9A2AC332779CC0!106.entry#comment</wfw:comment><dcterms:modified>2006-04-17T03:49:05Z</dcterms:modified></item></channel></rss>