CN116909572B - 一种基于自定义文法的解析器及推导树代码生成系统 - Google Patents
一种基于自定义文法的解析器及推导树代码生成系统 Download PDFInfo
- Publication number
- CN116909572B CN116909572B CN202310976864.6A CN202310976864A CN116909572B CN 116909572 B CN116909572 B CN 116909572B CN 202310976864 A CN202310976864 A CN 202310976864A CN 116909572 B CN116909572 B CN 116909572B
- Authority
- CN
- China
- Prior art keywords
- grammar
- file
- rule
- parser
- tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000006243 chemical reaction Methods 0.000 claims abstract description 33
- 238000012360 testing method Methods 0.000 claims description 15
- 239000000284 extract Substances 0.000 claims description 6
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 238000000926 separation method Methods 0.000 claims description 6
- 230000014509 gene expression Effects 0.000 claims description 3
- 238000000034 method Methods 0.000 abstract description 5
- 238000009795 derivation Methods 0.000 description 6
- 230000035772 mutation Effects 0.000 description 6
- 241000283726 Bison Species 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 244000248349 Citrus limon Species 0.000 description 1
- 235000005979 Citrus limon Nutrition 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000003471 mutagenic agent Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/425—Lexical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种基于自定义文法的解析器及推导树代码生成系统,包括:输入模块,用以输入自定义的文法文件和配置文件;转换模块,获取文法文件和配置文件,生成文法规则文件和词法文件,构造文法产生式及文法规则内部数据;解析器生成模块,根据文法规则文件和词法文件,生成词法器头文件与源文件,生成文法解析器头文件与源文件,生成解析器源码;推导树生成模块,根据文法产生式及文法规则内部数据,查找对应关系,构造推导树节点类,根据文法规则文件定义的文法规则,生成节点类头文件和节点类定义,遍历节点进行二叉树转换生成推导树源码。本发明根据文法文件以及配置文件,自动生成解析器源码以及推导树源码,减少人工更改代码的工作量。
Description
技术领域
本发明实施例涉及模糊测试技术领域,特别是涉及一种基于自定义文法的解析器及推导树代码生成系统。
背景技术
在模糊测试技术领域,目前广泛流行的模糊测试工具AFL针对非结构化字节流数据变异很有效,但针对结构化协议数据则需要专门定制变异器,一般采用文法变异。
文法变异(grammar mutation)一般是指根据协议数据的生成需求,采用BNF文法定义出功能和文法规则集合。一般协议数据以字节流为主(如tcp/ip协议),或者字符流为主(如ANSI SQL协议)。以字符流SQL为例,文法变异构造新的协议数据过程如下:输入协议数据,解析协议数据、构造语法树,将语法树转换成二叉树,对二叉树的子树进行替换,构造出新的语法树。 对语法树进行遍历、计算,构造出新的协议数据。
目前存在两个较难解决的问题:1、在协议功能每次更新时,都需要针对更新内容人工重新编写解析器以及改写变异器代码;2、由于解析器生成器(parser generator)本身的能力限制,不具备提供BNF文法即可根据输入自动生成推导树的能力,尤其是从左到右的LALR(1)解析器如bison/lemon等。基于LL(1)实现的解析器如ANTLR,虽然只要提供文法即可根据输入自动生成推导树。然而,针对文法变异的一些场景,如将推导树转换成二叉树,推导树转为二叉树,是为了便于子树替换生成新的推导树和协议数据,仍然需要人工改写一些代码。
在协议实现方不停地迭代开发每个阶段性版本都需要测试时,或者协议本身版本的变化(http协议存在不同版本),或者存在多个类似的协议时,每一次功能性的更改都需要更改代码,工作量大,成本高。传统的编译器解析器(parser generator)生成解析器代码的方式,难以胜任协议(模糊)测试工具产品化需要。
为此,有必要提供一种基于自定义文法的解析器及推导树代码生成系统,以解决上述问题。
发明内容
本申请实施例的目的在于提出一种基于自定义文法的解析器及推导树代码生成系统,根据输入的文法文件以及配置文件,自动生成解析器源码以及推导树源码,减少人工更改代码的工作量。
根据本发明的一个方面,提供一种基于自定义文法的解析器及推导树代码生成系统,包括:
输入模块,用以输入自定义的文法文件、词法配置文件和文法配置文件;
转换模块,用以与所述输入模块交互,获取文法文件、词法配置文件和文法配置文件,生成文法规则文件和词法文件,构造文法产生式及文法规则内部数据;
解析器生成模块,根据文法规则文件和词法文件,生成词法器头文件与源文件,生成文法解析器头文件与源文件,生成解析器源码;
推导树生成模块,根据文法产生式及文法规则内部数据,查找对应关系,构造推导树节点类,根据文法规则文件定义的文法规则,生成节点类头文件和节点类定义,遍历节点进行二叉树转换生成推导树源码;
编译封装模块,将所述文法文件、所述文法规则文件、所述解析器源码以及所述推导树源码编译封装为脚本文件,作为模糊测试的测试工具。
优选地,所述文法文件用以定义协议数据的文法规则与功能表示以及定义终结符、非终结符和操作符;所述文法文件用BNF描述;
所述词法配置文件用以定义token及其正则表达式,包括整数常量、浮点数常量和标识符名字;所述文法配置文件用以规定操作符的优先级以及定义结合律。
优选地,所述转换模块区分终结符与非终结符,提取所有的非终结符,将文法规则的文法产生式右手边符号的所有非终结符作为节点类成员,并将非终结符名字作为节点类名字,节点类名字对应的非终结符的文法产生式左手边符号对应有一条或多条文法规则,将该文法规则作为对应的节点类对象的文法规则,将非终结符、节点类以及文法规则的对应关系作为文法规则内部数据保存。
优选地,所述推导树生成模块根据节点类名字构造推导树节点类对象,查找文法规则内部数据的非终结符、节点类以及文法规则的对应关系,将文法规则序号填入节点类对象的属性成员中,使用内部变量符号为节点成员赋值,生成节点类头文件和节点类定义。
优选地,所述转换模块对所述文法规则文件定义的文法规则设定有优先级,在文法规则产生冲突时,选择优先级较高的文法规则。
优选地,所述文法规则的优先级设置采用%prec格式,所述文法文件兼容%prec格式。
优选地,还包括同步模块,所述同步模块连接所述转换模块和所述输入模块,将所述转换模块对文法规则的更新同步到文法文件。
优选地,所述同步模块提取文法规则文件,识别其中的文法规则和文法规则内部数据;识别每条文法规则的文法产生式、终结符以及非终结符;将文法产生式同文法文件解析生成的中间数据结构进行比较,如果有改动则对文法文件进行同步更新;如果没有改动,检查每条文法规则是否设定有优先级,若设定有优先级,则将优先级信息同步到文法文件。
优选地,所述转换模块读取词法配置文件,将词法配置文件定义成词法文件的骨架文件,在骨架文件的主体部分进行配置设置,在骨架文件中设置埋点标识字符串,将token类型信息填充到埋点区域,实现词法配置与生成内容的分离。
优选地,所述转换模块读取文法配置文件,将文法配置文件定义成文法规则文件的骨架文件;在骨架文件的%code部分进行配置设置,填入引用的头文件;在文法规则文件主体部分填入文法规则和功能表示;实现文法配置同生成内容的分离。
本申请公开的一种基于自定义文法的解析器及推导树代码生成系统,通过转换模块将文法文件和配置文件转换为文法规则文件和词法文件,并构造文法产生式及文法规则内部数据,通过解析器生成模块和推导树生成模块分别生成解析器源码和推导树源码,实现解析器源码以及推导树源码的自动生成,减少人工更改代码的工作量,降低维护成本,提高测试效率。
进一步地,设置编译封装模块,将所述文法文件、所述文法规则文件、所述解析器源码以及所述推导树源码编译封装为脚本文件,将脚本文件作为测试工具进行部署,部署方式简单,快捷。
进一步地,设置同步模块,在转换模块实现过程中对文法规则进行更改时,将更改部分同步到输入模块的文法文件,实现同步更新。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,而不是全部实施例。对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施方式的基于自定义文法的解析器及推导树代码生成系统的原理图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。根据本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面以具体的实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
根据现有技术存在的问题,本发明实施例提供一种基于自定义文法的解析器及推导树代码生成系统,根据输入的文法文件以及配置文件,自动生成解析器源码以及推导树源码,减少人工更改代码的工作量。
图1是根据本发明实施方式的基于自定义文法的解析器及推导树代码生成系统的原理图,如图1所示,本发明实施例提供的一种基于自定义文法的解析器及推导树代码生成系统包括:
输入模块,用以输入自定义的文法文件、词法配置文件和文法配置文件;
转换模块,用以与输入模块交互,获取文法文件、词法配置文件和文法配置文件,生成文法规则文件和词法文件,构造文法产生式及文法规则内部数据;
解析器生成模块,根据文法规则文件和词法文件,生成词法器头文件与源文件,生成文法解析器头文件与源文件,生成解析器源码;
推导树生成模块,根据文法产生式及文法规则内部数据,查找对应关系,构造推导树节点类,根据文法规则文件定义的文法规则,生成节点类头文件和节点类定义,遍历节点进行二叉树转换生成推导树源码;
编译封装模块,将文法文件、文法规则文件、解析器源码以及推导树源码编译封装为脚本文件,作为模糊测试的测试工具。
在具体实施中,文法文件用以定义协议数据的文法规则与功能表示以及定义终结符、非终结符和操作符;操作符本质也是终结符,部分操作符需要单独给出操作符的字面定义,部分无需字面定义,只需将终结符名字出现在文法规则中即可。
在一些实施例中,文法文件用BNF描述;BNF是“巴克斯-诺尔范式”的简称,是一种用于描述编程语言语法的形式化语言。它是一种上下文无关文法,通过一组文法产生式规则来描述一种语言的规则。BNF通常由四部分组成,包括语言基元、文法产生式、元语言符号以及注释。它是编译器和解释器等工具自动生成代码所需的基础。
在一些实施例中,词法配置文件用以定义token及其正则表达式,包括整数常量、浮点数常量和标识符名字;文法配置文件用以规定操作符的优先级以及定义结合律。token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个token便将此token返回给客户端,以后客户端只需带上这个token前来请求数据即可,无需再次带上用户名和密码。
在具体实施中,转换模块区分终结符与非终结符,提取所有的非终结符,将文法规则的文法产生式右手边符号(rhs,right hand symbol)的所有非终结符作为节点类成员,并将非终结符名字作为节点类名字,节点类名字对应的非终结符的文法产生式左手边符号(lhs,left hand symbol)对应有一条或多条文法规则,将该文法规则作为对应的节点类对象的文法规则,将非终结符、节点类以及文法规则的对应关系作为文法规则内部数据保存。节点类对象具体采用哪条规则,通过解析输入串、完成某条文法规则的归约操作时,记录的规则序号确定。
在具体实施中,推导树生成模块根据节点类名字构造推导树节点类对象,查找文法规则内部数据的非终结符、节点类以及文法规则的对应关系,将文法规则序号填入节点类对象的属性成员中,使用内部变量符号为节点成员赋值,生成节点类头文件和节点类定义。
在一些实施例中,转换模块对文法规则文件定义的文法规则设定有优先级,在文法规则产生冲突时,选择优先级较高的文法规则。
在一些实施例中,文法规则的优先级设置采用%prec格式,文法文件兼容%prec格式。
在一些实施例中,还包括同步模块,同步模块连接转换模块和输入模块,将转换模块对文法规则的更新同步到文法文件,转换模块对文法规则的更新通常是为了消除文法冲突,将文法规则的更新同步到文法文件在生成新的文法规则时避免了文法冲突。
在具体实施中,同步模块提取文法规则文件,识别其中的文法规则和文法规则内部数据;识别每条文法规则的文法产生式、终结符以及非终结符;将文法产生式同文法文件解析生成的中间数据结构进行比较,如果有改动则对文法文件进行同步更新;如果没有改动,检查每条文法规则是否设定有优先级,若设定有优先级,则将优先级信息同步到文法文件。
在具体实施中,转换模块读取词法配置文件,将词法配置文件定义成词法文件(如flex.l)的骨架文件(如flex.l.template),在骨架文件的主体部分进行配置设置,在骨架文件中设置埋点标识字符串,将token类型信息填充到埋点区域,实现词法配置与生成内容的分离。
在具体实施中,转换模块读取文法配置文件,将文法配置文件定义成文法规则文件(如bison.y)的骨架文件(如bison.y.template);在骨架文件的%code部分进行配置设置,填入引用的头文件;在文法规则文件(如bison.y)主体部分填入文法规则和功能表示;实现文法配置同生成内容的分离。
在一些实施例中,编译封装模块中还封装有模糊器源码及配置文件,模糊器源码及配置文件来自模糊器生成模块,模糊器生成模块与模糊测试相关,与此处不赘述。
在一些实施例中,将封装的脚本文件部署到本地,针对不通过服务下载模糊器的情况,需要实现代码隐藏,将脚本文件可以处理成二进制文件,转换模块、解析器生成模块以及推导树生成模块也处理成二进制文件以隐藏实现代码。变异器、模糊器通过静态库或编译后的目标文件提供。从而实现了代码的隐藏,不会泄露实现代码。
综上所述,本申请公开的一种基于自定义文法的解析器及推导树代码生成系统,通过转换模块将文法文件和配置文件转换为文法规则文件和词法文件,并构造文法产生式及文法规则内部数据,通过解析器生成模块和推导树生成模块分别生成解析器源码和推导树源码,实现解析器源码以及推导树源码的自动生成,减少人工更改代码的工作量,降低维护成本,提高测试效率。
进一步地,设置编译封装模块,将所述文法文件、所述文法规则文件、所述解析器源码以及所述推导树源码编译封装为脚本文件,将脚本文件作为测试工具进行部署,部署方式简单,快捷。
进一步地,设置同步模块,在转换模块实现过程中对文法规则进行更改时,将更改部分同步到输入模块的文法文件,实现同步更新。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (6)
1.一种基于自定义文法的解析器及推导树代码生成系统,其特征在于,包括:
输入模块,用以输入自定义的文法文件、词法配置文件和文法配置文件;
转换模块,用以与所述输入模块交互,获取文法文件、词法配置文件和文法配置文件,生成文法规则文件和词法文件,构造文法产生式及文法规则内部数据;
解析器生成模块,根据文法规则文件和词法文件,生成词法器头文件与源文件,生成文法解析器头文件与源文件,生成解析器源码;
推导树生成模块,根据文法产生式及文法规则内部数据,查找对应关系,构造推导树节点类,根据文法规则文件定义的文法规则,生成节点类头文件和节点类定义,遍历节点进行二叉树转换生成推导树源码;
编译封装模块,将所述文法文件、所述文法规则文件、所述解析器源码以及所述推导树源码编译封装为脚本文件,作为模糊测试的测试工具;
所述文法文件用以定义协议数据的文法规则与功能表示以及定义终结符、非终结符和操作符;所述文法文件用BNF描述;
所述词法配置文件用以定义token及其正则表达式,包括整数常量、浮点数常量和标识符名字;所述文法配置文件用以规定操作符的优先级以及定义结合律;
所述转换模块区分终结符与非终结符,提取所有的非终结符,将文法规则的文法产生式右手边符号的所有非终结符作为节点类成员,并将非终结符名字作为节点类名字,节点类名字对应的非终结符的文法产生式左手边符号对应有一条或多条文法规则,将该文法规则作为对应的节点类对象的文法规则,将非终结符、节点类以及文法规则的对应关系作为文法规则内部数据保存;
所述转换模块读取词法配置文件,将词法配置文件定义成词法文件的骨架文件,在骨架文件的主体部分进行配置设置,在骨架文件中设置埋点标识字符串,将token类型信息填充到埋点区域,实现词法配置与生成内容的分离;
所述转换模块读取文法配置文件,将文法配置文件定义成文法规则文件的骨架文件;在骨架文件的%code部分进行配置设置,填入引用的头文件;在文法规则文件主体部分填入文法规则和功能表示;实现文法配置同生成内容的分离。
2.根据权利要求1所述的基于自定义文法的解析器及推导树代码生成系统,其特征在于,所述推导树生成模块根据节点类名字构造推导树节点类对象,查找文法规则内部数据的非终结符、节点类以及文法规则的对应关系,将文法规则序号填入节点类对象的属性成员中,使用内部变量符号为节点成员赋值,生成节点类头文件和节点类定义。
3.根据权利要求1所述的基于自定义文法的解析器及推导树代码生成系统,其特征在于,所述转换模块对所述文法规则文件定义的文法规则设定有优先级,在文法规则产生冲突时,选择优先级较高的文法规则。
4.根据权利要求3所述的基于自定义文法的解析器及推导树代码生成系统,其特征在于,所述文法规则的优先级设置采用%prec格式,所述文法文件兼容%prec格式。
5.根据权利要求1所述的基于自定义文法的解析器及推导树代码生成系统,其特征在于,还包括同步模块,所述同步模块连接所述转换模块和所述输入模块,将所述转换模块对文法规则的更新同步到文法文件。
6.根据权利要求5所述的基于自定义文法的解析器及推导树代码生成系统,其特征在于,所述同步模块提取文法规则文件,识别其中的文法规则和文法规则内部数据;识别每条文法规则的文法产生式、终结符以及非终结符;将文法产生式同文法文件解析生成的中间数据结构进行比较,如果有改动则对文法文件进行同步更新;如果没有改动,检查每条文法规则是否设定有优先级,若设定有优先级,则将优先级信息同步到文法文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310976864.6A CN116909572B (zh) | 2023-08-04 | 2023-08-04 | 一种基于自定义文法的解析器及推导树代码生成系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310976864.6A CN116909572B (zh) | 2023-08-04 | 2023-08-04 | 一种基于自定义文法的解析器及推导树代码生成系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116909572A CN116909572A (zh) | 2023-10-20 |
CN116909572B true CN116909572B (zh) | 2024-03-12 |
Family
ID=88362913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310976864.6A Active CN116909572B (zh) | 2023-08-04 | 2023-08-04 | 一种基于自定义文法的解析器及推导树代码生成系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116909572B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109446704A (zh) * | 2018-11-09 | 2019-03-08 | 浙江工业大学 | 一种基于正则文法的产品族有限元模型参数化方法 |
CN111123888A (zh) * | 2019-12-19 | 2020-05-08 | 江苏中天科技软件技术有限公司 | 一种工控协议测试方法、系统及电子设备和存储介质 |
CN111381814A (zh) * | 2018-12-29 | 2020-07-07 | 北京奇虎科技有限公司 | 生成代码文件的语法树的方法、装置及电子设备 |
CN111381826A (zh) * | 2018-12-29 | 2020-07-07 | 北京奇虎科技有限公司 | 生成代码文件的语法树的方法、装置及电子设备 |
CN111381827A (zh) * | 2018-12-29 | 2020-07-07 | 北京奇虎科技有限公司 | 生成代码文件的语法树的方法、装置及电子设备 |
CN111381828A (zh) * | 2018-12-29 | 2020-07-07 | 北京奇虎科技有限公司 | 生成代码文件的语法树的方法、装置及电子设备 |
CN111694746A (zh) * | 2020-06-15 | 2020-09-22 | 荆门汇易佳信息科技有限公司 | 面向编译型语言AS3的Flash缺陷模糊测评工具 |
CN115712563A (zh) * | 2022-11-03 | 2023-02-24 | 上海安般信息科技有限公司 | 一种基于文法变异的模糊测试方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IN2014MU00041A (zh) * | 2014-01-06 | 2015-08-21 | Tata Consultancy Services Ltd |
-
2023
- 2023-08-04 CN CN202310976864.6A patent/CN116909572B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109446704A (zh) * | 2018-11-09 | 2019-03-08 | 浙江工业大学 | 一种基于正则文法的产品族有限元模型参数化方法 |
CN111381814A (zh) * | 2018-12-29 | 2020-07-07 | 北京奇虎科技有限公司 | 生成代码文件的语法树的方法、装置及电子设备 |
CN111381826A (zh) * | 2018-12-29 | 2020-07-07 | 北京奇虎科技有限公司 | 生成代码文件的语法树的方法、装置及电子设备 |
CN111381827A (zh) * | 2018-12-29 | 2020-07-07 | 北京奇虎科技有限公司 | 生成代码文件的语法树的方法、装置及电子设备 |
CN111381828A (zh) * | 2018-12-29 | 2020-07-07 | 北京奇虎科技有限公司 | 生成代码文件的语法树的方法、装置及电子设备 |
CN111123888A (zh) * | 2019-12-19 | 2020-05-08 | 江苏中天科技软件技术有限公司 | 一种工控协议测试方法、系统及电子设备和存储介质 |
CN111694746A (zh) * | 2020-06-15 | 2020-09-22 | 荆门汇易佳信息科技有限公司 | 面向编译型语言AS3的Flash缺陷模糊测评工具 |
CN115712563A (zh) * | 2022-11-03 | 2023-02-24 | 上海安般信息科技有限公司 | 一种基于文法变异的模糊测试方法 |
Non-Patent Citations (4)
Title |
---|
可编程模糊测试技术;杨梅芳;霍玮;邹燕燕;尹嘉伟;刘宝旭;龚晓锐;贾晓启;邹维;;软件学报;20180111(第05期);全文 * |
基于Fuzzing的GUI软件可靠性测试工具的研究与设计;岳姣;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160315(第3期);全文 * |
基于模型的Fuzzing测试脚本自动化生成;侯莹;洪征;潘;吴礼发;;计算机科学;20130315(第03期);全文 * |
基于模糊规则的WIA-PA协议测试工具实现;王志慧;《中国优秀硕士学位论文全文数据库 信息科技辑》;20220315(第3期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116909572A (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111209004B (zh) | 代码转换方法及装置 | |
US6516461B1 (en) | Source code translating method, recording medium containing source code translator program, and source code translator device | |
US7263691B2 (en) | Parsing structured data | |
US20110219357A1 (en) | Compressing source code written in a scripting language | |
US20040172234A1 (en) | Hardware accelerator personality compiler | |
US20020103937A1 (en) | Communication processing device | |
CN108737384B (zh) | 用编译器生成的句法树进行比特流解码的系统和方法 | |
EP2650785A1 (en) | Method, system, and computer program product for transforming machine code to source code | |
CN105260223B (zh) | 一种scpi命令定义、解析、执行和测试的方法 | |
Fedorchenko et al. | Equivalent transformations and regularization in context-free grammars | |
CN113949749B (zh) | Xml报文处理方法及装置 | |
CN114443041A (zh) | 抽象语法树的解析方法及计算机程序产品 | |
EP0520708A2 (en) | Method and apparatus for converting high level form abstract syntaxes into an intermediate form | |
CN116909572B (zh) | 一种基于自定义文法的解析器及推导树代码生成系统 | |
US10614161B2 (en) | Method for integration of semantic data processing | |
US5903756A (en) | Variable lookahead parser generator | |
CN115576603B (zh) | 一种获取代码片段中的变量值的方法及装置 | |
CN107172013A (zh) | 一种数据传输方法及系统 | |
US6845373B2 (en) | Text stream filter | |
JP2879099B1 (ja) | 抽象構文木処理方法、抽象構文木処理プログラムを記録したコンピュータ読み取り可能な記録媒体、抽象構文木データを記録したコンピュータ読み取り可能な記録媒体、及び、抽象構文木処理装置 | |
CN114090017B (zh) | 编程语言的解析方法及装置、非易失性存储介质 | |
JPH02224132A (ja) | メッセージパーサの自動発生システム | |
US20140214748A1 (en) | Incremental dfa compilation with single rule granularity | |
CN111930607B (zh) | 一种组合Web服务变更测试用例生成方法及系统 | |
Camarao et al. | A monadic combinator compiler compiler |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |