Quiero leer config en YAML con código elisp. Se buscó pero no se encontró el analizador listo para usar en elisp. ¿Extrañé algo útil?¿Cuál es el mejor analizador de YAML en elisp?
Respuesta
Seis meses después, parece que la respuesta es "no existe un analizador sólido de YALIS elisp fácilmente disponible".
Si realmente quieres leer un documento YAML en elisp y convertirlo en algo con lo que elisp puede interactuar, vas a tener que hacer un trabajo complicado. El EmacsWiki YAML page no tiene mucho para usted, y el canónico YAML mode tiene sugerencias de sintaxis, pero no un analizador real. Afortunadamente, alguien tiene implemented a YAML-parsing web-app que toma YAML y emite JSON o Python, podría intentar echarle un vistazo bajo ese capirote, o usarlo para verificar cualquier analizador YAML que pueda escribir usted mismo.
Buena suerte.
Adición: vea [esta respuesta SO] (http://stackoverflow.com/a/2231327/244494) para obtener algún código de inicio al escribir el propio analizador de descenso recursivo en elisp. –
http://edward.oconnor.cx/2006/03/json.el también puede ser útil para comparar e ideas. Obviamente, YAML no es JSON, pero ciertamente tienen algunas similitudes. – tripleee
y algunos meses más tarde: yo quería, así que aquí está cómo hacerlo con la ayuda de pitón:
(defun yaml-parse()
"yaml to json to a hashmap of current buffer, with python.
There is no yaml parser in elisp.
You need pyYaml and some yaml datatypes like dates are not supported by json."
(interactive)
(let ((json-object-type 'hash-table))
(setq myyaml (json-read-from-string (shell-command-to-string (concat "python -c 'import sys, yaml, json; json.dump(yaml.load(sys.stdin), sys.stdout, indent=4)' < " (buffer-file-name))))))
;; code here
)
Convierte el yaml del búfer en un HashMap elisp, con la ayuda de json.el
.
Necesita Pyyaml de Python: pip install PyYaml
.
Quiero decir en un nivel que es un truco que me hace dar un respingo, pero en otro, no puedo faltarle el respeto "la herramienta que necesito no existe, así que la escribiré yo mismo". Upvoted. –
Tres años más tarde, que tienen dynamic modules y emacs-libyaml parece bastante interesante. Utiliza el sistema de módulo dinámico para exponer los enlaces C de libyaml en Elisp. Esperaría que el rendimiento fuera fantástico, aunque no lo he probado.
- 1. Analizador YAML en Delphi?
- 2. ¿Cuál es el mejor analizador de registro de Postfix?
- 3. ¿Cuál es el mejor analizador de XML para Perl?
- 4. ¿Cuál es la mejor manera de reutilizar el analizador Lua?
- 5. ¿cuál es el mejor analizador html para java?
- 6. ¿Qué analizador HTML es el mejor?
- 7. ¿El mejor analizador para C#?
- 8. Analizador de Ruby YAML al pasar el constructor
- 9. ¿Por qué la pestaña es válida en pares clave/valor en el analizador YAML?
- 10. ¿Cuál es el analizador XML más rápido en PHP?
- 11. Diferencia entre el analizador XML SAX, el analizador de arrastre y el analizador DOM en Android
- 12. ¿Cuál es el formato aceptado por el analizador System.Net.Mail.MailAddress?
- 13. ¿Cuál es el mejor ocultador de JavaScript?
- 14. ¿Ya hay una biblioteca/analizador YAML para MATLAB?
- 15. ¿Cuál es el mejor estilo de codificación?
- 16. ¿Cuál es el mejor blog de XNA?
- 17. ¿Cuál es el mejor editor de python?
- 18. ¿Cuál es el mejor datepicker de Java ..?
- 19. ¿El mejor editor de YAML para usuarios de Windows?
- 20. ¿El mejor analizador JSON para Qt?
- 21. Cuál es el mejor módulo Drupal Survey
- 22. JSF vs Stripes, ¿cuál es el mejor?
- 23. Sort ObservableCollection: ¿cuál es el mejor enfoque?
- 24. ¿Cuál es el mejor argumento Pro OOP?
- 25. Carga lenta: ¿cuál es el mejor enfoque?
- 26. ¿Cuál es el mejor editor para AutoHotkey?
- 27. ¿Cuál es el mejor motor 3D Actionscript3?
- 28. Mejor Analizador XML para PHP
- 29. Emisor Yaml en C++
- 30. Módulos Python PostgreSQL. ¿Cuál es el mejor?
No conozco la respuesta, pero si no la hay, puede llamar a otro analizador para leer el yaml y hacer que muestre una representación de lisp textual que puede leer con 'read'. – Tom
¡Gracias! Es una buena idea. Tal vez puedo probar 'pymacs'. – Vivodo
No estoy seguro de lo que quiere decir, hay un modo yaml aquí: https://github.com/yoshiki/yaml-mode, pero ¿quiere un analizador para leer el yaml y hacer qué con él? –