项目组里现在做的工作基本上都是对以前机型代码的改造工作,我们很多流程所关注 的代码也都是我们要改造了的source,所以想做一些工具,把一些手工的工作自动化了,为此首先的一个工作就是要解析程序的结构,于是。。。终 于。。。。又见到了编译原理。文法分析,LL,LR,LALR。。。。。学习的感觉还真不错,以前在学校的时候是有时间没需求,只能看书看书,想做点什么 又不知道做点什么好,而现在工作了,基本上是有需求没时间了,哈哈
有一些Java的开源语法分析器,在这里先记入一下。
http://www.open-open.com/55.htm
另外,Eclipse的source也是一个好的参考,比如cdt中解析C99的包在:org.eclipse.cdt.source_4.0.1.200709241202.jar,其中有一个core,parser的包。
如果但纯想获得某些语法结构可以不用用到编译原理那么负责,比如想获得函数的位置,我们可以通过对一些关键token的解析,再加上对括号的压栈弹栈,应该也差不多,
呵呵,想法就先记录到这里,省得以后忘了,希望将来能过上又有时间又有需求的生活:)。