格式解析原文dregexp终于问世了

Dregexp终于 问世……

* 什么是Dregexp?

Dregexp是一个基于正则表达式的格式化解析和纠正原文的工具。

* 为解决什么关键问题?

传统的分析原文工具显得不够灵活而且代码重用性较差。与传统的格式分析(语义分析)器不同的是,它更通用,更便捷。与同类技术相比它有良好的功能扩展,和强力的纠正错误的能力。

目前Dregexg正式发布1.0版本

http://code.google.com/p/dregexp/downloads/list

 

下面将对dregexp做详细的介绍

它具有以下几个优点:
1. dreamRegexp采用正则表达式作为格式定义,使得匹配规则更灵活,更符合正常思维。
2. dreamRegexp采用配置化,使得匹配过程规则变得更加通明,简单。
3. dreamRegexp支持Parser解析器,当出现一次匹配完成时,将调用解析器完成捕获原文的字符串的解析工作。
4. dreamRegexp支持Correcter纠正器,当出现不匹配时,调用纠正器以修改原文以达到匹配。这是其他同类技术难以实现的功能。
5. dreamRegexp提出CorrectPoint纠正点的概念。其意义在于目的性的安装Correcter纠正器到指定的比较块。只有已安装纠正器的比较块出现不匹配时才会调用到所安装的纠正器
6. dreamRegexp支持正则表达式的所有特殊字符,包括各种内容范围符号与限定符,如:.?*
7. dreamRegexp支持正则表达式的捕获组。如: /1
8. dreamRegexp提供了良好的解析和纠正选项。你可以随时停止对下文的解析任务,你还可以纠正原文之后而不要求满足当前块的匹配。

清单
dregexp-1.0-jdk1.5.jar 适用于jdk1.5
dregexp-1.0-jdk1.6.jar 适用于jdk1.6
DreamRegexpDemo.zip  演示版本,内置api,dregexp-1.0-jdk1.5.jar,dregexp-1.0-jdk1.6.jar

部署
步骤1. 根据需要引入jdk相应的版本的jar文件,以dregexp-1.0-jdk1.5.jar为例。引入到自己应用项目中。
步骤2. 需要打开DreamRegexpDemo.zip中找到dreamRegexp-rule.xml放到自己的应用程序的目录中,dreamRegexp-rule.xml文件定义了匹配的规则,具体将在编程规范中详细介绍。
步骤3. 建议在DreamRegexpDemo.zip中找到dreamRegexp-rule.xsd文件,放在与dreamRegexp-rule.xml同级的目录下。它可以帮助你校验匹配规则文件的合法性。

编程规范
1. 匹配规则匹配文件:dreamRegexp-rule.xml
dreamRegexp-rule.xml
根节点为<rule>,格式如下:
<rules xmlns="http://www.dream.org/dreamRegexp-rule" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.dream.org/dreamRegexp-rule dreamRegexp-rule.xsd ">
 <correcters>
  <correcter><!-- 纠正器 -->
   <name>
    c1<!-- 声明 -->
   </name>
   <class>
    demo.TestCorrecter<!-- 类全限定名 -->
   </class>
  </correcter>
 </correcters>
 <parsers><!-- 解析器 -->
  <parser>
   <name>
    ps<!-- 解析器声明 -->
   </name>
   <class>
    demo.TestParser<!-- 类全限定名 -->
   </class>
  </parser>
 </parsers>

 <correct-points>
  <correct-point>
   <name>
    p1<!-- 纠正点声明 -->
   </name>
   <point>
    1-1<!-- 出错点 -->
   </point>
   <ref-correcter>
    c1<!-- 引入纠正器 -->
   </ref-correcter>
  </correct-point>
 </correct-points>

 <analyzerManager>
  <analyzer>
   <type>
    regexp<!-- original|regexp -->
   </type>
   <pattern><![CDATA[<([^//s]*)>c*<//1>]]></pattern>
   <!--
    验证正则表达式
   -->
   <matcher><!-- 比较器 -->
    <ref-correct-point>
     p1<!-- 引入纠正点 -->
    </ref-correct-point>
   </matcher>
   <ref-parser>
    ps<!-- 引用解析器 -->
   </ref-parser>
  </analyzer>
 </analyzerManager>
</rules>

其中<correcters>拥有多个纠正器<correcter>
<parsers>拥有多个解析器<parser>
<analyzerManager>拥有多个分析器<analyzer>,<analyzer>的type暂时只支持regexp,表示按照正则表达式规则,可以给不用给出type默认仍是regexp
<correct-points>拥有多个<correct-points>
<correct-point>引用一个<correcter>,其point表示安装点。如上例中1-1表示第一组的第一个比较块。
<analyzer>将引用一个<parser>,就是安装解析器。其matcher引用多个<correct-point>表示按照correct-point的point上安装纠正器.如上例中:引用p1的correct-point,其point表示第一组的第一个比较块,对应的也就是<([^//s]*)>c*<//1>的第一组的第一个比较块<

2. 结构规范
dreamRegexp要求使用者需要写Parser和Correcter的继承类,并且dreamRegexp-rule.xml中指向它们,如DreamRegexpDemo中使用的是子类TestParser和TestCorrecter。这些子类要求实现parse()和correct()方法来完成使用者的业务功能
下面对parse()和correct()方法返回做简单的介绍,具体参见API中的Parser与Correcter类(DreamRegexpDemo.zip下的doc)。
parse()返回值为boolean,表示是否继续扫描任务。使用者可以在某次正确匹配之后根据需要继续或终止对下文的扫描任务。
correcer()返回值为boolean,表示是否需要再次去原文比较,你可以可选的纠正了原文之后而不要求其一定满足当前的比较。

3. 代码规范
使用代码如下:
  DreamRegexp dr=new DreamRegexp().configure("/demo/dreamRegexp-rule.xml");
  dr.setArticle("<p>ccc</p>");
  dr.doCorrect();

其中configure("/demo/dreamRegexp-rule.xml")为指定规则文件,若不指定将默认为项目目录下的dreamRegexp-rule.xml文件
dr.setArticle("<p>ccc</p>");为设定正文
dr.doCorrect();为开启执行任务

版权声明
本软件版权属原作者IDEAR,盗版必究。
任何个人或团体可以无偿使用,但必须注明原作者或出处

网址:http://code.google.com/p/dregexp/downloads/list

内容概要:本文详细介绍了基于FPGA的144输出通道可切换电压源系统的设计与实现,涵盖系统总体架构、FPGA硬件设计、上位机软件设计以及系统集成方案。系统由上位机控制软件(PC端)、FPGA控制核心和高压输出模块(144通道)三部分组成。FPGA硬件设计部分详细描述了Verilog代码实现,包括PWM生成模块、UART通信模块和温度监控模块。硬件设计说明中提及了FPGA选型、PWM生成方式、通信接口、高压输出模块和保护电路的设计要点。上位机软件采用Python编写,实现了设备连接、命令发送、序列控制等功能,并提供了一个图形用户界面(GUI)用于方便的操作和配置。 适合人群:具备一定硬件设计和编程基础的电子工程师、FPGA开发者及科研人员。 使用场景及目标:①适用于需要精确控制多通道电压输出的实验环境或工业应用场景;②帮助用户理解和掌握FPGA在复杂控制系统中的应用,包括PWM控制、UART通信及多通道信号处理;③为研究人员提供一个可扩展的平台,用于测试和验证不同的电压源控制算法和策略。 阅读建议:由于涉及硬件和软件两方面的内容,建议读者先熟悉FPGA基础知识和Verilog语言,同时具备一定的Python编程经验。在阅读过程中,应结合硬件电路图和代码注释,逐步理解系统的各个组成部分及其相互关系。此外,实际动手搭建和调试该系统将有助于加深对整个设计的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值