[发明专利]一种解析源文件的方法和装置有效
申请号: | 201210299029.5 | 申请日: | 2012-08-21 |
公开(公告)号: | CN102855306A | 公开(公告)日: | 2013-01-02 |
发明(设计)人: | 陆舟;于华章 | 申请(专利权)人: | 飞天诚信科技股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 解析 源文件 方法 装置 | ||
1.一种解析源文件的方法,其特征在于,包括以下步骤:
A1、打开源文件,将所述源文件的起始位置作为当前位置;
A2、从当前位置向后读取一行字符串;
A3、判断是否读取成功,如果成功,则执行步骤A4;否则,执行步骤A11;
A4、将读取到的一行字符串作为当前字符串,并将所述当前位置更新为位于所述当前字符串之后且与所述当前字符串相邻的位置;
A5、对所述当前字符串进行判断,如果所述当前字符串为注释字符串,则执行步骤A6;如果所述当前字符串为空行,则执行步骤A7;如果所述当前字符串不是注释字符串或者空行,但包含注释信息,则执行步骤A8;如果所述当前字符串不是注释字符串或者空行,也不包含注释信息,则执行步骤A10;
A6、将包括所述当前字符串在内的至少一条字符串作为注释字符串进行解析,将解析结果写入缓冲区,并返回步骤A2;
A7、将所述当前字符串写入缓冲区,并返回步骤A2;
A8、将当前字符串更新为所述当前字符串中除注释信息之外的其他内容;
A9、将所述当前字符串作为非注释字符串进行解析,在解析结果不为空时,将解析结果写入缓冲区,并返回步骤A2;
A10、将包括当前字符串在内的至少一条字符串作为非注释字符串进行解析,在解析结果不为空时,将解析结果写入缓冲区,并返回步骤A2;
A11、将缓冲区中的内容写入目标文件。
2.如权利要求1所述的方法,其特征在于,所述当前字符串为注释字符串,具体为:
所述当前字符串包含第一预设字符串,且所述当前字符串不包含位于所述第一预设字符串之前的字符串,所述第一预设字符串为“/*”、“/* ”、“//”和“// ”中的任一种。
3.如权利要求1所述的方法,其特征在于,所述当前字符串包含注释信息,具体为:
所述当前字符串中包含第一预设字符串,所述第一预设字符串为“/*”、“/* ”、“//”和“// ”中的任一种。
4.如权利要求1所述的方法,其特征在于,步骤A6,具体包括:
B1、将第一偏移量清零,所述第一偏移量用于标识当最近一次写入缓冲区的内容为注释信息时,该注释信息在所述缓冲区中的起始位置相对于缓冲区的首地址的偏移量;
B2、对所述当前字符串进行判断,如果所述当前字符串包含第二预设字符串但不包含第三预设字符串,则执行步骤B3;如果所述当前字符串包含第二预设字符串和第三预设字符串,则执行步骤B7;如果所述当前字符串不包含第二预设字符串,则执行步骤B11;
B3、将所述第一偏移量的取值赋值为第二偏移量的取值,将所述当前字符串作为解析结果写入所述缓冲区,将所述第二偏移量的取值自加所述当前字符串的长度,所述第二偏移量用于标识最近一次写入缓冲区的解析结果在所述缓冲区中的结束位置相对于所述缓冲区的首地址的偏移量;
B4、从当前位置向后读取一行字符串作为当前字符串,并将当前位置更新为位于当前字符串之后且与该当前字符串相邻的位置;
B5、判断所述当前字符串是否包含位于首尾的空格,如果包含,则执行步骤B6;否则,返回步骤B3;
B6、将位于所述当前字符串的首尾的空格删除,并返回步骤B3;
B7、判断所述当前字符串中是否存在位于第三预设字符串之后的字符串,如果存在,则执行步骤B8;否则,执行步骤B11;
B8、将所述第一偏移量的取值赋值为所述第二偏移量的取值,将所述当前字符串中的第三预设字符串以及位于第三预设字符串之前的字符串作为解析结果写入所述缓冲区,获取所述当前字符串中的第三预设字符串以及位于第三预设字符串之前的字符串的长度之和,将所述第二偏移量的取值自加该长度之和;
B9、将当前字符串更新为当前字符串中位于第三预设字符串之后的字符串;
B10、将所述当前字符串作为非注释字符串进行解析,在解析结果不为空时,将解析结果写入所述缓冲区,并返回步骤A2;
B11、将所述第一偏移量的取值赋值为所述第二偏移量的取值,将所述当前字符串作为解析结果写入所述缓冲区,将所述第二偏移量的取值自加所述当前字符串的长度,并返回步骤A2;
步骤A9、A10和B10,均具体包括:
C1、对所述当前字符串进行判断,如果所述当前字符串包含第四预设字符串,则执行步骤C2;如果所述当前字符串包含第五预设字符串,则执行步骤C3;如果所述当前字符串包括右括号,则执行步骤C8;如果所述当前字符串不包含第四预设字符串、第五预设字符串或者右括号,则执行步骤C11;
C2、将包括所述当前字符串在内的至少一条字符串作为包含特殊字段的字符串进行解析,将解析结果写入所述缓冲区,将所述第一偏移量清零,并返回步骤A2;
C3、对所述当前字符串进行判断,如果所述当前字符串包含“class ”,则执行步骤C4;如果所述当前字符串包含“interface ”,则执行步骤C5;如果所述当前字符串为方法中的字符串,则执行步骤C6;如果所述当前字符串不包含“class ”或“interface ”,也不是方法中的字符串,则执行步骤C7;
C4、将包括所述当前字符串在内的至少一条字符串作为类中的字符串进行解析,将解析结果写入所述缓冲区,将所述第一偏移量清零,并返回步骤A2;
C5、将包括所述当前字符串在内的至少一条字符串作为接口中的字符串进行解析,将解析结果写入所述缓冲区,将所述第一偏移量清零,并返回步骤A2;
C6、将包括所述当前字符串在内的至少一条字符串作为方法进行解析,将解析结果写入所述缓冲区,将所述第一偏移量清零,并返回步骤A2;
C7、将包括所述当前字符串在内的至少一条字符串作为变量进行解析,将解析结果写入所述缓冲区,将所述第一偏移量清零,并返回步骤A2;
C8、判断所述第一偏移量的取值是否为零,如果为零,则执行步骤C9;否则,执行步骤C10;
C9、将右括号作为解析结果保存到写入所述缓冲区,将所述第二偏移量的取值自加该右括号的长度,将所述第一偏移量清零,并返回步骤A2;
C10、根据所述第一偏移量的取值,删除最近一次写入所述缓冲区的注释信息,将所述第二偏移量的取值赋值为所述第一偏移量的取值;将右括号作为解析结果保存到写入所述缓冲区,将所述第二偏移量的取值自加该右括号的长度,将所述第一偏移量清零,并返回步骤A2;
C11、将包括所述当前字符串在内的至少一条字符串作为无用对象进行解析,将所述第一偏移量清零,并返回步骤A2。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于飞天诚信科技股份有限公司,未经飞天诚信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210299029.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:宽频带超材料天线罩
- 下一篇:一种治疗黄褐斑的中药组合物