【技术实现步骤摘要】
一种语法树层次化表示方法
本专利技术属于编译器处理领域,具体涉及一种IEC61131文本编程语言的语法树表示方法。
技术介绍
当前C/C++/JAVA等语言对应的编译器开发技术已经成熟,上述语言均可基于GCC实现不同处理器的目标文件形成。在工业控制中,IEC61131是通用的标准,定义了结构化文本ST、指令表IL的文本型编程语言,是工控领域的安全子集语言,有对应的语法和文法定义。通用的编译器例如GCC并不支持工控专用的语言编译。可基于flex+bison实现61131文本语言的词法和语法分析,并形成语法树,之后开发语义分析和后端指令输出模块。这其中语法树是非常重要的数据结构,语法树是语法分析阶段形成的内存数据结构,当源程序代码量大时,语法树也非常庞大,直接基于内存的断点调试获取多级层次结构存在不直观、不透明的障碍。已有的语法树中间表示方法,是形成平层化的文本内容,用文本编辑器或Excel打开查看,通过缩进来表示层次关系,当语法树层级关系深或节点多时,依然存在不够清晰、无法折叠展开的问题。需要一种能等价表示层次语法树的方法,以提高编译器开发过程中问题诊断和分析的效率...
【技术保护点】
一种语法树层次化表示方法,其特征在于包括如下步骤:步骤1,获取语法树输出选项,创建XML文件;步骤2,基于深度优先遍历语法树,每个语法树节点对应一个XML文件节点,语法树节点对应的类名作为XML节点名称,按照语法树的父子、兄弟关系创建XML文件的节点结构;步骤3,确定并输出语法树节点的信息:输出各种节点类型对应的数据属性,按照属性名、属性值输出到XML对应的节点中,并输出该节点对应的源文件名、所在起始行号、起始列号、终止行号、终止列号;步骤4,存储语法树对应的XML文件。
【技术特征摘要】
1.一种语法树层次化表示方法,其特征在于包括如下步骤:步骤1,获取语法树输出选项,创建XML文件;步骤2,基于深度优先遍历语法树,每个语法树节点对应一个XML文件节点,语法树节点对应的类名作为XML节点名称,按照语法树的父子、兄弟关系创建XML文件的节点结构;步骤3,确定并输出语法树节点的信息:输出各种节点类型对应的数据属性,按照属性名、属性值输出到XML对应的节点中,并输出该节点对应的源文件名、所在起始行号、起始列号、终止行号、终止列号;步骤4,存储语法树对应的XML文件。2.如权利要求1所述的一种语法树层次化表示方法,其特征在于:所述步骤1中,针对IEC61131-3标准的结构化文本ST语言、指令表IL语言,为各种类型的节点设计对应的类。3.如权利要求1所述的一种语法树层次化表示方法,...
【专利技术属性】
技术研发人员:张磊,陈宏君,文继锋,周磊,谭良良,
申请(专利权)人:南京南瑞继保电气有限公司,南京南瑞继保工程技术有限公司,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。