觉得时间过得很快,很多事情,还来不及思考,却依然已经过去,可是许多的事情,明明已经过去,却还是在不断地思考,是为了挽回个人的颜面,还是为了挽回那自以为是的感觉。本周很多事情,做的都不算太好,回想整个工作的过程,竟然还没有发现自己做了些什么?工作了,但是收获却并不多,曾经告诫自己的总结,却依然没有能够去坚持,很心疼,却也很无奈。
项目的事情已经完成的差不太多,可能在一些细节的方面,需要自己进一步的去探究。距离上次使用.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) |
编辑 收藏