- 37
- 0
- 约4.92千字
- 约 2页
- 2017-08-10 发布于湖北
- 举报
一种实现编程语言相互转换的方法.pdf
! :
Science and Technology InnovationHerald
T 技 术
travelflp可。生成的XML文档结构清晰,在
当旅行者访 问某一结点的时候 ,就要 对其进行处理 的时候可以定义其中的节点
有接受者来 响应相应 的动作。接收者是根 信息,从而为下一步将其转换为其他编程语
据整个程序在运行时来匹配相应 的旅行者 言打下了基础。
的,每个节点的接受方法类似。
图3
下面给出在旅行者 中ASTInitializer 4从XML转换为其他语言
2.1总体分析 类型节点对应的接受方法: 由于该文重点在于将编程语言转换为
(1)定义C语 言语 法 的.JJt文件 ,通过
publicObjectjjtAccept(CParser XML文件,所以在此只对于XML转换为其
JavaCC工具生成C语言对应的抽象语法树
Travellertraveller,0bjectdata){ 他编程语言作简要介绍,有这种需求 的读
和C语言的编译器。(2)添加相应的节点标记
retUrn travel1er.travel(thiS, 者可以按照此思路进行深入研究。
和一定的规范 。(3)通过旅行者模式对其进
data); XML文档转为其他编程语言,是将文档
行遍历和提取所需的信息。
} 按照匹配的XSLT(Extensib1e Stylesheet
此过程所对应的流程图如图1所示 。
(3)创建转换器。 LanguageTransformation,扩展样式表
2.2C语言到AST的实现
至此,已经建立了C语言转为XML文档 转换语言)转化为特定语言。如图3所示。
首先获 得相应语 言 的 .jJt文件 。执
的基础架构,下面还需要一个驱动程序来
行.jjt文件会生成七个文件 。我们对其 中 触发整个程序的运行。下面是部分代码: 5结语
的SimPle1.java进行编译就可以获得 publicstatic void main(string【】 该研究完成了编程语言之 间相互转换
Simple1.JJ所定义的语法的编译器。如果我
args){ 工作的前一部分,就是从某一编程语言到
们对C语言的.Jj文件进行JavaCC操作就可 XML语言的转换。其 中是以C语言为例 ,从
以得 到一个名 为CParser.java的文件 ,对 //解析器开始语法分析 ,生成待 获取.jj文件到最终生成XML文档做了详细
其进行编译就得到了C语言的编译器。 测程序的AST,并获得Tr
原创力文档

文档评论(0)