我正在用python编写一个游戏,并决定为地图数据文件创建一个DSL.我知道我可以用regex编写自己的解析器,但我想知道是否有现成的python工具可以更容易地做到这一点,比如在PHP引擎中使用的re2c.
一些额外的信息:
是的,我确实需要DSL,即使我没有,我仍然需要在项目中构建和使用它的经验.
DSL只包含数据(声明?),它不会被"执行".大多数行看起来像:
SOMETHING: !abc @123 #xyz/123
我只需要阅读数据树.
Matthew Trev.. 12
pyparsing给我留下了深刻的印象.作者Paul McGuire在python list/comp.lang.python上很活跃,并且对任何有关它的查询都非常有帮助.
pyparsing给我留下了深刻的印象.作者Paul McGuire在python list/comp.lang.python上很活跃,并且对任何有关它的查询都非常有帮助.
有很多Python解析工具:http://nedbatchelder.com/text/python-parsers.html
这是一种非常有效的方法.
abc= ONETHING( ... ) xyz= ANOTHERTHING( ... ) pqr= SOMETHING( this=abc, that=123, more=(xyz,123) )
声明.易于解析.
和...
它实际上是Python.一些类声明和工作已经完成.DSL实际上是类声明.
重要的是DSL只是创建对象.定义DSL时,首先必须从对象模型开始.稍后,您在该对象模型周围添加了一些语法.您不是从语法开始,而是从模型开始.