【发布时间】:2013-02-27 02:23:52
【问题描述】:
如果我有不正确的术语,请原谅我;也许只是用“正确”的词来描述我想要的东西就足以让我自己找到答案。
我正在开发 ODL(对象描述语言)的解析器,据我所知,这是一种神秘的语言,现在只有 NASA PDS(行星数据系统;这是 NASA 向公众提供数据的方式) .幸运的是,PDS 终于转向 XML,但我仍然需要为在截止日期前落下的任务编写软件。
ODL 以如下方式定义对象:
OBJECT = TABLE
ROWS = 128
ROW_BYTES = 512
END_OBJECT = TABLE
我正在尝试使用pyparsing 编写解析器,并且在完成上述构造之前我做得很好。
我必须创建一些规则,以确保 OBJECT 行的右侧值与 END_OBJECT 的 RHV 相同。但我似乎无法将其放入pyparsing 规则中。我可以确保两者都是语法上有效的值,但我不能采取额外的步骤来确保值相同。
- 我的直觉是否正确,这是一种上下文相关的语法?这是我应该用来描述这个问题的短语吗?
- 无论这是理论上的哪种语法,
pyparsing是否能够处理这种结构? - 如果
pyparsing无法处理,是否还有其他 Python 工具可以处理?ply(lex/yacc的Python实现)怎么样?
【问题讨论】:
标签: python parsing pyparsing ply