随笔-26  评论-4  文章-0  trackbacks-0
 

    觉得时间过得很快,很多事情,还来不及思考,却依然已经过去,可是许多的事情,明明已经过去,却还是在不断地思考,是为了挽回个人的颜面,还是为了挽回那自以为是的感觉。本周很多事情,做的都不算太好,回想整个工作的过程,竟然还没有发现自己做了些什么?工作了,但是收获却并不多,曾经告诫自己的总结,却依然没有能够去坚持,很心疼,却也很无奈。
    项目的事情已经完成的差不太多,可能在一些细节的方面,需要自己进一步的去探究。距离上次使用.net平台的东西,已经07年的事情,很庆幸还能够记起一些,但是依然暴露出自己的许多问题。
    1、回想曾经学过的古训,“工欲善其事,必先利其器”,做事情,过于急躁,依然是自己一个很大的毛病,没有静下来去思考,看看例子,学习学习模板,走的全是相反的方向,上来就往前冲,走了许多的弯路,也浪费了许多的时间,完全是愣头青一个。如ue的使用、vs快捷键的使用等,都是对效率巨大的提升,可惜在前期却没有做。
    2、在做事情的过程中,没有及时的跳出圈子,积极思考问题,没有对问题进行通盘的研究与考量,只知道,把这个模块弄好,也只想着学好这个技术,忘记了全面思考。做事情,不能光顾着脚下,一定要学着抬头看天。如在弄css时,完全不会去考虑在各个模块中的重用问题,在使用asp.net控件时,没有沉下来去思考控件的功能点,疲于应对,却忘记了积极思考。
    3、总结思路。想想这些周的忙碌,没有太多的总结与提炼,虽然花费许多的时间,但是成长不足,没有自己的沉淀与总结,在今后的项目中,也将会遇到更多的问题。始终记着一句话,你的能力是有限,但是你应该尽可能的在能力允许的范围内,将自己的价值最大化。而现在的自己,恰恰是没有做到这些,所以,总结沉淀这个习惯一定要完成。
    其实,综上所述,发现更多的问题,还是出现在一个人的学习方法上。没有按照一个适合的过程去学习,走了许多的弯路,但是依然执迷不悟,对于一个新工具,新方法的学习,应该试着从以下几个方面去思考总结。
    1、程序帮助文档。包括有,自带的帮助手册、安装文件目录结构等。许多现成的示例、demo就在自己的电脑上,如此简单、易学的宝藏被丢弃的话,岂不是太可惜。所以,先学示例,然后,再图发展。
    2、交流学习。都是有圈子的存在,都在努力着做着更好,你需要去寻找这样的圈子。有的时候,真不应该去逃避,因为,你现在所不重视的,所嫌麻烦的,在今后的将来都会成为你发展的瓶颈,所以,明白那些是重要的事情,就应该去做,而不是去等,去跟别人交流着,也试着去勇敢的贡献自己的力量。
    3、个人的总结。其实知识都是相通的,站在一个高度的时候,跳出自己的思维模式,学着去理解别人的思路与构想,试着去提炼、总结自己,这样也许就是一个简单的创新过程,而也许就是这些简单的创新,才能够让自己变的有那么一点不一样。
    成长总会要付出许多的努力,我不怕付出,我就怕自己的根本就没有想到,所以,有的时候,勇敢的去面对现实,在自己的能力范围内,把现在的自己做好,在自己能够想到的事情做好。听过一个语音内容,说是任何想法,任何创意,都是一个沉淀的过程,所以,不必太介意一时的得失,对于好的想法,记下来,在隔断时间后,再试着去思考、扩展、删减等等,当你最后剩下这些的时候,你就会明白,这些才是你真正想要去做的,所以,加油加油,在自己的能力范围内,最大化自己的价值。

posted @ 2012-03-18 22:50 mingsen 阅读(320) | 评论 (0)编辑 收藏
    本周转眼就过去了,随之而来的,二月份也快见底了,匆匆忙忙的一个月,毛毛躁躁的一周,感觉收获不是很大,是自己太急躁了点?还是太沉迷于事情本身,而忘记了跳出来思考?或者真的是两者兼而有之。忙忙碌碌的一周,回忆起来最有收获的,居然还是自己在下班之余写的小结。因为匆忙,而忘记了自己曾经许多的习惯,也因为犯懒,而忘记了应该有的坚持,这个周,得恢复起来了,新的一周就要要开始了,抖擞起精神来,好好干活,机会不多,好好把握。

    本周完成的基本事项有:
    1、项目本身事宜的沟通,包括网络问题初步沟通,需求问题初步沟通等。
        高效很重要,脸皮厚也需要,不要怕打扰别人,有问题及时沟通,不能把自己憋伤了,学会珍惜自己的时间和精力,在思考问题全面的同时,及时解决问题,不要盲目等待。
    2、jquery学习
        很强大的一个框架,优秀的定位功能,以及ajax异步、css装饰等,在实现功能的同时,结合css的知识,达到网页美化的目的。
        内容很丰富,但是时间有限,尝试着把每天学习到的新东西用xmind进行整理,慢慢积累,相信会收获许多的。
    3、《金字塔原理》
        陆陆续续在看着,虽然基本过了大概,但是不明白的东西还是很多,在接下来的这几天时间里,抓紧时间吧,不然真的要食言了。
        感想:书中提及的思考、表达方法是一些很有意思的尝试,学习着 在交谈、写作前,提供更多有思考的信息,总结、归纳、分类等等,也学着设身处地的去做一件事情,想清楚其中的步骤流程,提炼后,进行交流、应用。
    4、游泳:
        被老师说了一顿,自己也认为学习的太慢,水性很不好,但是依然希望能够通过勤奋去弥补。本周周末,利用网络资源,学习了下蛙泳的基本步骤,有些收获,希望能继续坚持,我的时间不多哇,好好加油啊~~
        感想:早就应该知道主动去学习,一直以忙为借口去逃避,接下来不找借口,努力把事情做好。
    5、sybase ase 的安装
        真的很遗憾,忙活了一周,这个数据库还是没有配置好,遇到许多的问题,但是感觉自己没有按照一个正确的思路去做、去构思、去定位问题。毛躁了太多,跳出的圈子还是不够,这个周接着努力吧,不管怎么样,静下心来,当你把这个问题解决的时候,也许就是你再踏上一步的时刻,加油加油。

    6、学习方法的思考
        本周遇到sybase安装部署的问题,许多事情都没有做好,在问题定位、缩小范围、重复工作上存在较大问题。尝试着将这方面的思路整理下,使用结构化的方式进行思考吧。

    总结本周的工作,用毛躁来形容真的是一点都不为过,下周的任务依然还有许多,学着安静下来做事情吧,把手头上的任务结束掉,学着劳逸结合,学习跳出圈子思考问题用好总结用好番茄钟。    
posted @ 2012-02-26 23:04 mingsen 阅读(538) | 评论 (0)编辑 收藏
    本周的匆匆忙忙,似乎总是抓不住自己的时间,有点急躁,有点不安,但是所幸还好,能够在后半程静下心来去做事情,还挺不错的。
    本周有几件事情,让自己有了技能及思考力上的提升,也在其中体会着成长的快乐,加油加油。
    1、学会使用 抠图工具。
    之前使用 光影魔术手,一直不知道如何使用抠图,一个误打误撞的机会,让自己硬着头皮折腾一把,发现还挺有意思的,呵呵,以后可以考虑多弄些素材,好好的学习下ps的东西,记住,要安排一个独立的月份完成摄影和ps的工作。要学着独立承担责任,哪怕会耽误一些自己的时间,但是依然很值当。
    2、学会使用div+css。
    不得不说,有些事情 得积累到一定的程度,才能够想明白。之前一直在学习css的知识,但是一直没能理解透彻其中的含义,但是当你真正投入进去的时候,开始逼迫着自己去学习的时候,才发现css其实真的很简单。懂得区分 <div>和<span>的区别,懂得display:block的含义,知晓盒子模型(padding、border、margin的概念及区别),定位(position:absolute、relative等)、明白float的含义(定义float后,原有div与父div的关系),就能够明白div布局的基本设计方式了,真的要比table好很多。推荐图书《精通CSS+Div》 前沿科技-曾顺。其实,积累不在于一时,而在于生活的分分秒秒中
    3、《金字塔原理》
    看了一半的内容,收获还是颇多,明白写文章的一个思路,也明白语言的思想性,尝试着去整理学习吧,慢慢来,兴趣是最好的老师。这个月马上就要结束了,自己得抓紧时间了。
    4、log4j日志方法学习
    明白不同级别日志的记录方式,进而思考项目中的日志问题,一个好的项目,必要的日志文件是必须的,就像一个开关,可以随时通过配置文件,实现程序问题的快速定位,实现问题的解决。一个好的程序,不光是功能的实现,效率的高效,更是需要有清晰的代码结构、日志记录、注释等,简洁才是最优!!
    5、项目
    依然在稳步推进中,尽管还有许多未完成的事情,但是争取加快进度,因为还有好多事情等着去努力,加油加油~~
    6、游泳
    已经开始了第二次课程学习,虽然呛了好几次水,但依然很不错,能够在水里面挪动了,呵呵,小小进步的开始,蛙泳,你得用心去学。
    在这些事情之外,其实还有好多令人沮丧的事情,但是始终觉得,既然一件事情,你投入了时间,投入了精力,那么就应该努力着去把它做好。下周的事情依然还有许多所以继续努力,继续前进。
    
posted @ 2012-02-19 22:35 mingsen 阅读(202) | 评论 (0)编辑 收藏
    生活得有着自己的节奏,当你的步调被打乱的时候,放松自己,学着去接受,进而去调整,不要急躁。
    把别人眼中的自己看轻,其实你本没有那么的重要。
    但是,把自己眼中的自己看重,你其实很重要,你来到这个世界,是如此的特别,有自己的理想与追求,做好现在的自己。
    走慢一点,但要学着看远一点~~~

    本周的工作进步不大,感觉有些浑浑噩噩,被一些事情干扰着,再加上本身就缺乏着计划,有点手足无措的感觉,调整好自己,学着去理清楚,重要的事情,紧急的事情,加油加油!!行动前,请先思考。
    
    游泳的计划已经开始了,希望能坚持。
    项目的事情,进入到比较棘手的阶段,得用心去解决问题了,学着慢一些,思考全面一点,对于恐惧的事情,认真着手去解决。
    《金字塔的原理》已经开始阅读了,但似乎没有坚持做好,努力努力吧。
    一些重要的事情,如资讯、Excel等等,没有着手准备,确实是不应该,调整调整吧。

    下一周,
    1、继续读书,继续思考,
    2、提高工作效率,着手解决项目中遇到的难题。
    3、提高个人抗干扰的能力,把握好自己的节奏,专注并不仅仅是一种时间上的投入。
posted @ 2012-02-12 22:28 mingsen 阅读(179) | 评论 (0)编辑 收藏
    恐惧,每个人都会有,每个人都会在某一时刻对某些事情很犯怵,很担心,也有许多人因此而畏首畏尾,自缚手脚。但是,其实,当你跳出这种情绪的包围,以一种积极的心态来面对这件事情,把它当成一个问题来处理,而不管它将花费多长的时间,就是想着解决它,那么你会发现,其实并不可怕,而这也许就是自信心建立的开始。把恐惧、担心的事情写下来,分析它,用心去解决它。
    本周就有许多次这样的尝试,其实说成恐惧有点托大,但是至少是令人感到有些烦恼的一些事情,如照片的修复、虚拟网络的搭建等等。很烦这样的事情,一直拖到周末才集中处理,但是当你真正开始着手处理的时候,发现其实并不难,而这对于个人自信心的培养却很重要。
    本周感觉挺受用的事情,主要如下:
    1、照片修复
    对于照片修复,知道肯定需要使用一些软件来处理,上网找到了美图秀秀,并进行了安装,发现功能虽然很多,但是并不满足自己的要求,于是继续寻找。这次学乖了一点,找到了光影魔术手,先看说明及功能特性,发现依然不能满足,直接跳过,寻找下一个软件,虽然无用,但却省去了自己下载安装的时间和精力。最后,简单的问题,还是依靠笨拙的方法解决了,想到了windows自带的画图工具,依靠取点采样,完成了图片的修改。
    思考:在这整个过程中,发现做事情慢一点真的很重要。做之前,请先思量。会省时间,更会节约自己的精力。此外,慢一点的好处是,让自己对一些事情,如软件的功能点等,看的更仔细些,知道那些软件可以做些什么,为下次节约了更多的时间。挺受用的一个方法。
    2、vmvare虚拟网络搭建
    在本周,进行了虚拟网络的搭建。为了满足家庭网络布局的要求,使用vmvare搭建了虚拟机及网络,并在其上进行了系统及sql server的安装,并通过vmvare实现虚拟网络的搭建,就这样,一个基于局域网的开发环境就构建好了,在今后的开发过程中,即可使用虚拟机进行,为自己的主机保持了一个相对干净的使用环境。
    思考:期间也曾遇到网络不通的问题,尝试着跳出圈子进行思考,才发现,原来是防火墙的缘故。当你低头干活时,尝试着跳出来想想,站在更高的角度,也许会有更大的收获。此外,平时的积累整理也很重要,对于一些重要的软件、文档等等,要学会整理,这样才能有更大的提高,而不是等到出现问题,需要了,才挠破头去找。
    3、工作上:
    在本周,对于工作上,应该说是依然在稳步推进着,虽然有点慢,但是对于节后的第一周,还是挺满意,至少在状态的恢复上还行。
    在项目上,对于需求方面的沟通,自己要先想明白,对于自己都不能明白的东西,就更别指望着客户去想清楚,所以,做之前先思考,简化流程,才能做出更好的系统。
    下周,要重点思考一些项目管理方面的问题,如进度管理、风险管理、培训、个人时间管理、沟通等方法的问题。
    发现自己有些时候,有点过于严肃,应该试着放下自己,哪怕这样会让自己牺牲点时间。
    4、读书
    本周,重点阅读了《思考力决定竞争力》这本书,书中对于一些逻辑性思考的描述,还是挺有意思的,对于一个论点或论据,区分其是“结论”还是“假设”很重要,平对对于问题,多思考为什么,在闲暇时间,多考验自己,像大前研一一样,去积极思考,这样,你才能在真正遇到问题的时候,快速的解决问题【多问自己,学会换位思考,适当YY,有益健康】。
    对于假设,要找出足够的论点进行支撑,这样,才能富有良好的结构,而这其中,就需要进行全面的思考,以及专业的态度,对于管理类问题、程序类问题,等等,都要尝试着去锻炼自己这方面的能力,挺有意思的事情,加油加油~~,本周,将在此基础上完成《麦肯锡方法》的阅读,以及《金字塔原理》的初步阅读。
    5、思考
    本周感悟,认识到有一个字----“”的重要性,有些事情,不管你承认与否,它都是存在着。静下心来去思考这份过程,你会发现自己并不是那么重感情,“敬”也许是表达的最贴切的说法,至少“敬”的成分会多很多,那么对于无法改变的事情,就去“敬”吧,同时也敬自己,尊重自己内心的想法,面对现实,开拓创新,也许就是我接下来应该去努力的事情。

    恍恍惚惚,写下了这么多本周的思考与感想,对于本又想放弃写周记的人该情以何堪啊~~,呵呵,不过既然决定了,就继续吧,也不担心各位朋友的笑话,坚持做自己才是最重要的,我要坚持把这个游戏玩到底,还要继续折腾呢~~
    
posted @ 2012-02-05 21:19 mingsen 阅读(167) | 评论 (0)编辑 收藏
    转眼即到2月了,总觉得自己在这个月做些什么,围绕的新年的计划,我得加把油去把一些事情执行一下了,列个计划,尝试着去做这些做好吧。
    1、游泳,本月报名,预计每周4个小时左右,依靠外力完成
    2、读书;
        《金字塔原理》
        《思考力》
        培养个人的逻辑思考能力,本月完成两本书,使用思维导图对其进行总结。睡前完成
    3、项目(花费大量时间)
        工作上的事项:项目管理等尝试
        业余时间:vs学习
    4、Excel、英语学习,通过微博进行每日关注,每周总结。
    5、资讯信息,通过163等网站进行每日关注

    任务似乎非常的艰巨,想体验尝试的东西很多,尽力而为去尝试吧。

    此外,有些事情,希望自己能接着做好
    1、资料的定期整理,养成良好的习惯
    2、总结回顾
    3、周计划的执行
posted @ 2012-02-01 22:51 mingsen 阅读(144) | 评论 (0)编辑 收藏
    春节期间读了两本书,一本是余华的《活着》,还有一本是《十四堂人生创意课》,其实,都是在回家的途中阅读的,颇有些感慨,尤其是前者,让自己在读的过程中,禁不住自己情绪的波动,为主人公的曲折人生感慨着,也为主人公的坚强而庆幸着,但是,想想,这人世间的苦难,怎么就这般呢,一个颤巍巍的老人,何以就能够在人生的大悲大苦面前,这样的从容,这样的淡定呢?可能有人会想,这可能就是个小说而已,但是,我想,这绝对不仅仅是!

    春节期间,趁着拜年走亲戚的功夫,和爸妈一起聊天,聊到了我外公、爷爷那一代人的人生经历,真的感觉,在现实面前,在动荡的时局面前,个人的力量是何等的微不足道,有时,时代会展示出它狰狞的面目,让人们如此的战栗与不安。在我们的上上一代人中,他们先后经历了抗日救国、国共内战、新中国成立、3年自然灾害、十年文革、计划经济、改革开放等等故事,在时代的大起大落面前,因为年少的冲动,因为生活的艰辛,因为站错了队伍,过早地品尝着人生的苦楚,那个时候,有人被活活饿死,有人因为生病没钱治疗,在家煎熬着等死,有人被批斗,有人被关进了牛棚里,而这些人,其实并不远,就是咱们祖辈的兄弟姐妹们,他们与我们离的很近很近,本来他们可以过得很好,但是却因为种种因素,年纪轻轻就过早的离去。有时,会突然地觉得,人活着是多么的不易,有时也会想到,能活到现在,真的是个奇迹。如今,生活的确是变好了许多,在父辈口中,只能过年才能吃到的菜,已经可以天天品尝的到了,但是,父辈他们吃过的苦,又能有多少人,能够去品味,去珍惜呢?

    读欣频的《十四堂人生创意课》则让人为另一种生存的方式而喝彩着,虽然,不能做到书中描述的部分内容,但是,依然会是一些非常有意思的尝试,尝试着去以一种更健康、更高昂的态度去活着,去为那种丰富的人生阅历活着,去品味着、也尝试着去换位思考着,多一种视角,多一种与自然,与世界联系的方式, 很有意思,让自己有很强的冲动,想着去旅游、去学习、去交流,或许,这也是我们应该追求的另一种人生吧,也是我们生于这个时代,所应该做的珍惜吧。

    珍惜现在,活出自我。
posted @ 2012-01-28 21:40 mingsen 阅读(169) | 评论 (0)编辑 收藏
    新的一年,想放下曾今那个胆小、吝啬的自我,想勇敢的去尝试一些事情,学着跟自己做一些游戏,跟自己比赛。
    1、坚持去写博客,坚持对每周的生活、工作、感想,进行着总结,这样,当我到年底的时候,是不是可以尝试着去出本书呢?好期待 那厚厚的、踏实的样子。
    2、学会游泳生存必须的技能,只是为了在这个社会能够活下去。
    3、项目管理。学习着去站在更高的角度思考问题,尝试着去抓住仅有的几次机会,你知道自己的机会并不多。
    4、英语口语。生存必备的技能,为了在这个世界上,能够有更多的尝试。
    5、旅游。想去很多的地方,可以一个人去,也可以和朋友一起,找个可以相互招呼,能够愉快交谈的人。可以开车自驾,也可以火车旅行,总之,不要在顾虑太多,其实确实也没有太多可以去担心的。山西、陕西必去的地方~~~,加油加油
    6、演讲。希望能够有良好的思考力与逻辑能力,能够准确地表达自己的意思,提高与人沟通的技能~~,加油加油,这个差距真的很大。

    自己与自己赛跑,自己与自己比赛,你知道,其实你真的可以做的更好

    新年里的读书清单:
    1、《十四堂人生创意课》
    2、《思考力》
    旅行:
    天柱山
posted @ 2012-01-18 22:44 mingsen 阅读(320) | 评论 (1)编辑 收藏

      已经很长时间没有更新博客了,都有些忘记了网站的用户和密码了,看着博客的标题,真的有点惭愧,因为忙碌,因为缺乏方向,因为没有坚持,真的忘记了许许多多。决定,还是 好好收拾整理下心情,写一些自己的东西,也算是对过往生活的总结吧,人嘛,总是在总结积累中,逐步提高的。

      本文介绍的是一款软件,xmind,一个思维导图的软件,之所以推荐,是因为很好用,工具的功能很强大,也能够支持许多的知识技能,如“头脑风暴”、“知识管理”、“图书提纲”等等~~,但是 目前而且本人还是把他当做了一个优秀的 信息收集的功能,或者说也是一种知识管理吧,呵呵,不知道原作者看到了,会不会吐血~~
 
     废话少说,尝试着整理下吧,以下图为例,说明思维导图xmind的概况。

     


     哇,貌似图形 有点大,但是更多的是想说明,这个软件的一些基本的用法,和 功能的简单介绍。

    我相信,如果看过这个图的话,你会对思维导图有一定的了解,如果 你 懂得一些基本的知识管理,你会知道,这个就是一个简单的知识汇总与分类,是的,的确很简单,但是这个至少能够帮助我们几点:
     1、快速的告诉我们,xmind 是个什么东西,能够做什么(传达信息)
     2、便捷的知识管理功能,对于 大纲信息,可以作为节点,对于 辅助信息,我们可以放到辅助提示框中,对于详细的描述信息,可以放到 附注中(做到主次分明,快速定位信息)
     3、优秀的图形表达能力。(赏心悦目)
    好了,暂时先总结这些吧,后续内容在整理资料后,继续补充,欢迎提宝贵意见~~~
posted @ 2011-11-10 22:26 mingsen 阅读(1544) | 评论 (2)编辑 收藏
1、概念:
      antlr是 another tool for language recongnition,用于 词法、语法和语义分析。如果大家仔细看一些开源项目的lib包,会经常看到其包含有antlr.jar文件。

2、使用场景:
        设想一个运算的场景,“1+3”为多少,如果通过程序解析这个字符串,可以尝试使用拆解字符串的方法,识别其中的运算符“+”,然后将结果输出,感觉很简单。但是,如果场景变化呢?“1+3-6/2”这个样子的呢,也得改程序?是不是有些头大呢?那么antlr就可以帮助你来解决这个头大的问题。

3、主要内容:
          antlr重要包含三个重要的内容,分别是 词法分析、语法分析、语义分析,其各个部分的用途主要如下所示:
          词法分析:  (识别出 “1”,“+”,“3”)

               (1)逐个字符读取公式源文件

               (2)识别公式源文件中的词法单元(Token)

                (3)将词法单元传递给语法分析器

               (4)词法分析器又叫扫描器(Scanner)  
        语法分析:(识别1+3)

                (1)从词法分析器获得词法单元

                (2)利用文法定义验证词法单元组合

               (3)构造语法分析树

                (4)将语法分析树传递给下一阶段

               (5)语法分析器又叫解析器(Parser)
         语义分析:(计算结果)
              (1)完成语义动作定义

              (2)一般在语法分析器中完成语义分析

       大致各部分的含义就是,首先 识别出 输入的字符是否正确,其次检验字符之间的运算关系,然后计算得出相关的结果。

4、主要工作:
         需要写两个.g的文件,分别是 Expr.g和Eval.g文件,前者生成词法、语法分析相关的java文件,通过编译生成ExprLexer.java、ExprParser.java 和 Expr.tokens文件,后者生成语义分析文件,分别为Eval.java和Eval.tokens文件。
         相关的编译方法为:java org.antlr.Tool Expr.g

5、开发环境搭建:
          1、配置java环境变量
          2、将antlr的相关jar包添加到环境变量中
          3、运行 java org.antlr.Tool 进行验证

6、简单代码展示,用于计算简答的加减运算
          1)、expr.g
grammar Expr;
options {
 language=Java;
 output=AST;
 ASTLabelType=CommonTree; // type of $stat.tree ref etc...
}
@header {
 package test.tool;
}

 prog: ( stat {/* System.out.println($stat.tree.toStringTree()); */})+ ;

stat
 : expr  NEWLINE -> expr
 | NEWLINE    ->
 ;
expr: multExpr (('+' ^|'-' ^) multExpr)* ;
multExpr
 : atom (('/' ^|'*' ^) atom)*
 ;
 
atom
 : INT
 | DOUBLE
 | ID
 | '(' ! expr ')' !
 ; 

ID  :   ('N'|'R'|'A'|'C'|'I'|'D')'B'('S'|'H');
INT :   '0'..'9'+ ;
WS  :   (' '|'\t')+ {skip();} ;
NEWLINE:'\r'? '\n' ;
DOUBLE : (('0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9') ('0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9')*) '.' (('0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9') ('0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9')*); 

        2)Eval.g
           

tree grammar Eval;     
options {
 tokenVocab=Expr;    // read token types from Expr.tokens file
 ASTLabelType=CommonTree;  // what is Java type of nodes?
}
@header {
 package fanxiqian.tool;(可在此处添加 package和import等相关信息)
}
@members {
       …………(可在此处添加java方法) 
}

prog: stat+ ;
stat: expr+;

expr returns [double value]
 : ^('+' a=expr b=expr) {$value = a+b;}  //此处定义了 相关运算符的含义
 | ^('-' a=expr b=expr) {$value = a-b;}
 | ^('*' a=expr b=expr) {$value = a*b;}
 | ^('/' a=expr b=expr) {$value=a/b;}
 | INT {$value = Integer.parseInt($INT.text);}
 | DOUBLE {$value = Double.parseDouble($DOUBLE.text);}
 ; 

         3)通过编译命令,生成相关的java文件
                       java org.antlr.Tool Expr.g
                       java org.antlr.Tool Eval.g  

          4)编写相关的测试类
public class Test
{
    public static void main(String[] args) throws Exception
    {
     ANTLRStringStream input;
     ExprLexer lexer;
     CommonTokenStream tokens;
     ExprParser parser;
      String formula="1+3";
   //开始解析
   formula += "\n";
   input = new ANTLRStringStream(formula);
   lexer = new ExprLexer(input);
   tokens = new CommonTokenStream(lexer);
   parser = new ExprParser(tokens);
   ExprParser.prog_return r = parser.prog();
   // walk resulting tree
         CommonTree t = (CommonTree)r.getTree();
         CommonTreeNodeStream nodes = new CommonTreeNodeStream(t);
         Eval walker = new Eval(nodes);
         System.out.println(walker.expr());
//  }   

即可得到输出结果为4。

7,总结
       antlr是个强大的公式解析工具,本文只是简单的一个小结,以后遇到相关的使用继续补充吧,欢迎大家补充添加吧。
posted @ 2011-05-16 20:12 mingsen 阅读(4521) | 评论 (0)编辑 收藏
仅列出标题
共3页: 上一页 1 2 3 下一页