解析字符语法图的想法

Rip*_*ley 5 python xml parsing

伙计我正在实现一个奇怪的事情,我必须编写一个实用程序来解析纯文本格式的语法图并将其转换为xml格式,这与IBM的基本相同(如"创建无转换"工作"部分":http: //publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.sqls.doc/sqls17.htm 像ANTLR/yacc/bison这样的典型解析器/词法分析器似乎无法处理这种东西,我的一个想法是将语法图转换为字符位图并定义一些函数,如more_up,move_down,left,right等,以便遍历整个图表以模拟人类肉眼的理解过程.这听起来不够熟练,我没有想出其他更好的方法.有人曾经玩过类似的场景吗?也许你可以对此有所了解.

先感谢您!

Ira*_*ter 1

用于访问单个字符的“字符网格”想法似乎是一个基础步骤;另一个答案展示了如何做到这一点。现在您可以随机访问网格并轻松遵循水平或垂直线。

真正的问题是您想要构建一个表示字符网格所说内容的图表。这样的图将由(废话)、节点、弧线和注释组成。

可能最容易找到的是节点,它们可能由代表图中分支点的字符(例如+)指示(请参阅其他答案)。每个弧将是一串字符,导致弧的弯曲或另一个节点。遵循这样的字符串应该非常简单 (:-) ),并且可以生成表示弧的字符串,即使它有弯曲。

您可能想要枚举所有节点(只需扫描数组)。节点注释必须合理地位于附近,您可以简单地扫描节点位置周围的小半径。

您需要枚举离开节点的每个弧,并收集表示弧的字符串。

我会将弧线输入词法分析器以将其拆开;它可能有有趣的内容(例如,内联字符序列中的注释)。

此时,您已拥有带有关联注释的节点和弧。从这些构建相应的图表应该非常容易。