基于正则表达式的Gerber文件编译器制造技术

技术编号:10155253 阅读:159 留言:0更新日期:2014-06-30 20:29
本发明专利技术公开了一种基于正则表达式的Gerber文件编译器,涉及高级语言的编辑或解释技术领域。包括架构部分以及算法实现部分,架构部分包括编译应用模块以及编译应用支持模块,编译应用模块与编译应用支持模块之间通过API进行调用并基于自定义消息进行通信;在算法实现上,首先采用3型文法对Gerber文件进行形式化描述,然后利用正则表达式为词法分析和语法分析构造相应的规则表,依据规则表,编译执行词法分析和语法分析线程,并同时进行图形信息匹配,匹配结果利用双向链表进行存储。使用所述编译器对Gerber文件进行编译,具有通用性强、编译效率高的特点。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种基于正则表达式的Gerber文件编译器,涉及高级语言的编辑或解释
。包括架构部分以及算法实现部分,架构部分包括编译应用模块以及编译应用支持模块,编译应用模块与编译应用支持模块之间通过API进行调用并基于自定义消息进行通信;在算法实现上,首先采用3型文法对Gerber文件进行形式化描述,然后利用正则表达式为词法分析和语法分析构造相应的规则表,依据规则表,编译执行词法分析和语法分析线程,并同时进行图形信息匹配,匹配结果利用双向链表进行存储。使用所述编译器对Gerber文件进行编译,具有通用性强、编译效率高的特点。【专利说明】基于正则表达式的Gerber文件编译器
本专利技术涉及高级语言的编辑或解释
,尤其涉及一种基于正则表达式的Gerber文件编译器。
技术介绍
Gerber文件格式最早是由美国的Gerber公司提出并用于该公司自家的光学绘图机,后为Ucamco公司所收购,现在Gerber文件格式的规范由Ucamco公司制定,最新版本已于2014年2月发布。Gerber文件是PCB行业软件描述线路板(线路层、阻焊层、字符层等)图像及钻、铣等加工数据的文档格式集合。在实际生产过程中,用户或企业设计部门为了保护电路板设计的自主知识产权,往往只提供电路板的Gerber文件给PCB生产制造部门。遵循RS-274-X格式的Gerber文件以文本形式记录了一系列的数据块,根据规范文档,这些数据块包括三种类型,分别为坐标数据(Coordinate Data),功能指令(FunctionCodes)和参数(Parameters)。每个独立的数据块之间以*号间隔开来,这三种类型实际上可分为RS-274-X参数和RS-274-D标准代码(包含坐标数据和功能指令)。由于Gerber文件在PCB行业的广泛应用,国内相关机构也早已开展了许多相关研究。电子科技大学基于Gerber文件解析实现了 PCB电路板的自动光学检测,但是所开发的解析算法所使用的匹配工具基于C#自带的正则表达式库,尽管使用方便,但在执行效率、匹配速度以及资源占用上被普遍认为存在不足,无法在较为复杂的Gerber文件解析场合取得令人满意的效果。华中科技大学基于自主研发的Gerber文件解析算法,开发了适合柔性电路板的紫外加工系统,该解析算法采用Boost.Regex正则表达式类库作为匹配和分析工具。Boost.Regex正则表达式类库是目前在相关研究中被视为在通用性和解析效率上均十分优秀的类标准库,但是所提出的解析算法限于应用场合,并没有完成对Gerber文档标准的完全解析。
技术实现思路
本专利技术所要解决的技术问题是提供一种基于正则表达式的Gerber文件编译器,所述编译器具有通用性强、编译效率高的特点。为解决上述技术问题,本专利技术所采取的技术方案是:一种基于正则表达式的Gerber文件编译器,其特征在于:包括架构部分以及算法实现部分,架构部分包括编译应用模块以及编译应用支持模块,编译应用模块与编译应用支持模块之间通过API进行调用并基于自定义消息进行通信;在算法实现上,首先采用3型文法对Gerber文件进行形式化描述,然后利用正则表达式为词法分析和语法分析构造相应的规则表,依据规则表,编译执行词法分析和语法分析线程,并同时进行图形信息匹配,匹配结果利用双向链表进行存储。进一步的,所述编译应用支持模块基于Gerber格式规范,以正则表达式为工具,用于实现对Gerber文件的词法分析、语法分析、信息匹配以及中间代码的生成;所述编译应用模块用于根据需求对编译应用支持模块生成的中间代码进行选取,并进一步加工生成最终的加工数据。进一步的,所述编译应用模块通过下述方法实现:I)将当前的应用实例的句柄通过SetCurrentHandler ()这个接口函数传入编译应用支持模块;2)调用StartAnalyzation ()函数对编译应用支持模块进行编译;3)等待编译完成,并在消息响应函数中完成对Gerber文件编译完成的消息的响应;4)调用GetGerberInfor ()函数读取中间代码,填充到记录Gerber文件信息的一个结构体中;5)根据应用需求进行相关程序的编写,完成编译后端过程。进一步的,对于编译应用支持模块的编译过程,在编译应用模块调用StartAnalyzation ()函数后便开始启动编译过程,其实现流程为:I)打开并以文本流的方式读入Gerber文件;2)创建词法分析线程、语法分析线程和信息匹配线程,三个线程同时运行,通过信号量进行同步;3)在完成中间代码的生成后向编译应用模块发送WM_COMPILERFINISH这一自定义消息,完成编译前端过程。进一步的,在创建词法分析线程和语法分析线程时,制定词法分析和语法分析的规则表,在得到Gerber文件的形式化语法描述基础上,分析可能出现的词法错误和语法错误,根据可能出现的错误,结合Gerber文件的形式化描述构建词法分析规则表,并以正则表达式进行定义;并根据可能出现的错误,结合Gerber文件的形式化描述构建语法分析表,并以正则语法进行定义。进一步的,选择正规文法,即3型文法对Gerber文件的语法进行形式化描述。进一步的,对于语法分析,使用光圈信息链表、坐标信息链表、导线信息链表、层链表这四个双向数据链表进行分析结果的存储,并完成最后中间代码的生成。进一步的,词法分析是从左到右逐个字符地读入数据块,对构成加工程序的字符流进行扫描和分解,识别出一个个单词,所构造的词法分析规则表用于实现词法分析线程的功能,并将Gerber文件的语句中所包含的图形信息进行初步匹配。进一步的,在进行词法分析时,对于参数,无需进行下一步的语法检查;对于功能代码和坐标数据,需要进一步进行语法检查再生成中间代码。进一步的,对于匹配结果,首先用正则表达式进行类型匹配,分析该数据块是RS-27S-X参数还是标准RS-27S-D代码,如果确定了 一个数据块是RS-27S-X参数,则进一步判断该参数类型,根据参数的类型分别使用对应的结构体进行信息存储,并插入相应的链表当中。采用上述技术方案所产生的有益效果在于:1)提出并设计了一种通用编译器,架构部分包括两个模块:编译应用支持模块(底层)和编译应用模块(上层)。基于编译应用支持模块进行上层模块的开发,理论上可以面向所有Gerber文件应用场合,包括切割加工,冲孔加工,光学检测等。2)以多线程方式实现,词法分析线程、语法分析线程和匹配线程使用信号量进行交叉同步,能够取得较快的编译速度,实际测试可达到Ims编译70行左右。综上,所述编译器具有通用性强编译效率高的特点。【专利附图】【附图说明】下面结合附图和【具体实施方式】对本专利技术作进一步详细的说明。图1是本专利技术编译器的分层架构设计;图2是本专利技术的功能实现框图;图3是本专利技术算法实现流程图;图4是本专利技术中词法分析与图形信息匹配流程图;图5-6是使用本编译器得到的解析图;图7-8是Altium Designer所得的解析图。【具体实施方式】基于
技术介绍
所述,本专利技术提供了以下技术方案解决现有技术中存在的问题:本专利技术在基于分层架构的基础上,实现了基于正则表达式的Gerber文件编译器,能够提供预处本文档来自技高网
...

【技术保护点】
一种基于正则表达式的Gerber文件编译器,其特征在于:包括架构部分以及算法实现部分,架构部分包括编译应用模块以及编译应用支持模块,编译应用模块与编译应用支持模块之间通过API进行调用并基于自定义消息进行通信;在算法实现上,首先采用3型文法对Gerber文件进行形式化描述,然后利用正则表达式为词法分析和语法分析构造相应的规则表,依据规则表,编译执行词法分析和语法分析线程,并同时进行图形信息匹配,匹配结果利用双向链表进行存储。

【技术特征摘要】

【专利技术属性】
技术研发人员:李松莫广锋汪迪
申请(专利权)人:东莞市升力智能科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1