Tengo datos similares a YAML y necesito crear una gramática para ello utilizando Pyparsing. Como Python, el alcance de datos de Yaml está definida por el espacio en blancoCómo crear una gramática para los siguientes datos usando Pyparsing
datos:
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
Después de analizar lo anterior, si algo resultado similar al siguiente:
{'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'}}}}
[EDIT] Los datos es similar a YAML pero no exactamente lo mismo. Entonces, el analizador de YAML Python no puede analizarlo. Me fui de algunos de los detalles para hacer que los datos de ejemplo sean más simples
Sí, esta es una pregunta demasiado amplia y sin información y código adicional. –
lepl tiene un ejemplo que es casi este - http://www.acooke.org/lepl/offside.html#example - pero pyparsing tiene una * mucho * comunidad más grande para soporte, así que no recomendaría cambiar a menos que haya no hay forma de que pyparsing maneje sangrías. –
El texto sensible al espacio en blanco es un punto débil para pyparsing. Este ejemplo (http://pyparsing.wikispaces.com/file/view/indentedGrammarExample.py) en la wiki de pyparsing muestra una forma, pero sigue siendo incómodo. – PaulMcG