Chcę przeczytać config w YAML z kodem elizacyjnym. Szukano, ale nie znalazłem gotowego do użycia parsera w elemencie. Czy tęskniłem za czymś przydatnym?Jaki jest najlepszy parser YAML w elisp?
Odpowiedz
Sześć miesięcy później wygląda na to, że odpowiedź brzmi: "nie istnieje żaden solidny, łatwo dostępny parser YAML.
Jeśli naprawdę chcesz przeczytać dokument YAML w elicie i przekształcić go w coś, z czym może współpracować elisp, będziesz musiał włożyć trochę pracowitości. EmacsWiki YAML page nie ma wiele dla ciebie, a kanoniczny YAML mode ma wskazówki dotyczące składni, ale nie ma rzeczywistego parsera. Na szczęście ktoś ma implemented a YAML-parsing web-app, który pobiera YAML i wyprowadza JSON lub Python - możesz spróbować spojrzeć pod maską tego i - lub użyć go do sprawdzenia dowolnego parsera YAML, który sam napiszesz.
Powodzenia.
Dodatek: patrz [to odpowiedź SO] (http://stackoverflow.com/a/2231327/244494) dla jakiegoś kodu uruchomieniowego podczas pisania własnego parsera rekursywno-zejścia w elicie. –
http://edward.oconnor.cx/2006/03/json.el może być również przydatny do porównań i pomysłów. Oczywiście, YAML nie jest JSON, ale z pewnością mają pewne podobieństwa. – tripleee
Oraz kilka miesięcy później: Chciałem go, więc oto jak to zrobić z pewną pomocą python:
(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
)
Okazuje się YAML bieżącego bufora do w elisp hashmap, z pomocą json.el
.
Potrzebujesz pyyaml Pythona: pip install PyYaml
.
Chodzi mi o to, że na jednym poziomie jest to hack, który sprawia, że wzdrygam się, ale na innym, nie mogę zmusić się do braku szacunku "Narzędzie, którego potrzebuję, nie istnieje, więc sam je napiszę". Rewizja. –
Trzy lata później, mamy dynamic modules i emacs-libyaml wygląda całkiem interesująco. Używa systemu modułów dynamicznych do odsłonięcia wiązań C z libyaml w Elisp. Spodziewam się, że występ będzie fantastyczny, chociaż go nie testowałem.
- 1. Czy istnieje już biblioteka/parser YAML dla MATLAB?
- 2. parser rss w .net
- 3. Jak można zachować parser yaml-cpp z usuwania wszystkich komentarzy?
- 4. Jaki serwer WAMP jest najlepszy?
- 5. Jaki jest najlepszy blog XNA?
- 6. jaki jest najlepszy sposób na parsowanie odpowiedzi xml w AJAX
- 7. jaki jest pożytek z symbolu rury w yaml
- 8. Jaki jest najlepszy substytut FlowDocument w Silverlight?
- 9. Jaki jest najlepszy typ w języku Hack?
- 10. Najlepszy edytor YAML dla użytkowników systemu Windows?
- 11. Jaki jest najlepszy sposób ponownego użycia parsera Lua?
- 12. C++ Utwórz parser
- 13. Elisp: jak zapisać dane w pliku?
- 14. Funkcja filtra w Elisp
- 15. Programowanie CGI w Elisp?
- 16. Jaki jest najlepszy, najprostszy uploader plików ajax?
- 17. Jaki jest najlepszy język skriningu ekranu?
- 18. Jaki jest najlepszy sposób przetestowania aplikacji szyny?
- 19. Jaki jest najlepszy sposób rejestrowania aktywności użytkowników?
- 20. Jaki jest najlepszy sposób na seed srand()?
- 21. C# yaml tworzenie
- 22. Jaki jest najlepszy sposób profilowania wykonywania javascript?
- 23. Jaki jest najlepszy sposób tworzenia wdrożeń ClickOnce
- 24. Jaki jest najlepszy samouczek do nauki Mongoida?
- 25. Jaki jest najlepszy sposób zamknięcia gałęzi Mercurial?
- 26. Jaki jest najlepszy sposób odczytu GetResponseStream()?
- 27. Jaki jest najlepszy zwinny toolchain dla Qt?
- 28. Jaki jest najlepszy sposób implementacji protokołów?
- 29. Jaki jest najlepszy darmowy edytor XLIFF?
- 30. Jaki jest najlepszy sposób uczenia się WCF?
Nie znam odpowiedzi, ale jeśli jej nie ma, to możesz wywołać inny parser, aby odczytać yaml i wypisać na nim tekstową reprezentację seplenienia, którą możesz odczytać za pomocą 'read'. – Tom
Dzięki! To dobry pomysł. Może mogę wypróbować 'pymacs'. – Vivodo
Nie jestem pewien, co masz na myśli - jest tu tryb yaml: https://github.com/yoshiki/yaml-mode - ale chcesz, żeby parser czytał yaml i robił z nim co? –