我有類似於YAML的數據,需要使用Pyparsing爲其創建語法。像Python,YAML的數據範圍由空白如何使用Pyparsing爲以下數據創建語法
數據定義:
object : object_name
comment : this object is created first
methods:
method_name:
input:
arg1: arg_type
arg2: arg2_type
output:
methond2_name:
input:
output:
arg1 : arg_type
解析在上述過程之後,它應該與此類似輸出的東西:
{'comment': 'this object is created first',
'object': 'object_name',
'methods': {'method_name': {'input': {'arg1': 'arg_type', 'arg2': 'arg2_type'},
'output': None}, 'methond2_name': {'input': None, 'output': {'arg1': 'arg_type'}}}}
[編輯] 數據與YAML類似,但不完全相同。所以YAML Python解析器不能解析它。我留下了一些細節,使示例數據更簡單
是的,這是太寬沒有附加信息和代碼的問題。 – 2012-04-05 00:50:55
lepl有一個幾乎是這樣的例子 - http://www.acooke.org/lepl/offside.html#example - 但pyparsing有一個*更大的社區支持,所以我不會建議改變,除非有pyparsing無法處理縮進。 – 2012-04-05 03:10:08
空白敏感文本是pyparsing的弱點。 pyparsing wiki上的這個例子(http://pyparsing.wikispaces.com/file/view/indentedGrammarExample.py)顯示了一種方式,但它仍然是一個尷尬的去處。 – PaulMcG 2012-04-06 05:03:33