Estoy buscando la gramática de Ruby en forma BNF. ¿Hay una versión oficial?Ruby Grammar
Respuesta
Sí, hay uno Ruby BNF syntax por la Universidad de búfalo.
Editar: También he encontrado este Ruby BNF syntax alternativo.
también una versión oficial: Ruby Draft Specification. puedes encontrar la gramática allí.
Ruby Draft pliego de condiciones: http://ruby-std.netlab.jp. el servidor está caído, pero puede descargarlo desde http://www.ipa.go.jp/osc/english/ruby
No se puede acceder al enlace sin una contraseña. –
gracias por el informe. El antiguo enlace funcionó cuando publiqué ese comentario. pero agregué un nuevo enlace. Debería funcionar ahora. – GutenYe
Muy bueno. Veo que es para 1.8.7. ¿Hay uno más nuevo para Ruby 2.0? – sunnyrjuneja
La sintaxis YACC está en la fuente de Ruby. Descárguelo y ejecute la utilidad incluida para obtener la sintaxis legible.
wget ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p195.tar.gz
tar xvzf ruby-2.0.0-p195.tar.gz
cd ruby-2.0.0-p195
ruby sample/exyacc.rb < parse.y
muestra de salida (total 918 líneas para la v2.0.0-P195)
program : top_compstmt
;
top_compstmt : top_stmts opt_terms
;
top_stmts : none
| top_stmt
| top_stmts terms top_stmt
| error top_stmt
;
top_stmt : stmt
| keyword_BEGIN
'{' top_compstmt '}'
;
bodystmt : compstmt
opt_rescue
opt_else
opt_ensure
;
compstmt : stmts opt_terms
;
ahora solo 'git clone https://github.com/ruby/ruby; cd ruby; muestra de ruby / exyacc.rb
- 1. Grammar Writing Tools
- 2. Open Source Grammar Checker
- 3. Depurando Pyparsing Grammar
- 4. Scala Parser Combinator, ambiguous Grammar & Parse Forest
- 5. Ruby vs. Ruby on Rails
- 6. Ruby 1.9 más lento que Ruby 1.8?
- 7. Perfilando una aplicación ruby / ruby on rails
- 8. Ruby Enterprise Edition vs Ruby 1.9
- 9. TDD: Rspec Ruby MongoDB/Ruby Mongo Driver
- 10. Ruby: ¿Cómo agrupar una matriz de Ruby?
- 11. Lanzamiento de Ruby sin el prefijo "Ruby"
- 12. Intellisense para Ruby, Ruby on Rails, Python
- 13. ruby operator "= ~"
- 14. date_select Ruby
- 15. Ruby Performance
- 16. Ruby Basics
- 17. Ruby obfuscator
- 18. Ruby: console.log?
- 19. Ruby: extiéndete
- 20. Ruby Semaphores?
- 21. RAII en Ruby (O, Cómo administrar recursos en Ruby)
- 22. ruby / ruby on rails detección de fuga de memoria
- 23. ¿Necesito saber sobre Ruby para aprender Ruby on Rails?
- 24. Obtener inf-ruby para usar ruby version manager (rvm)
- 25. Ruby: Diferencia entre Instancia y variables locales en Ruby
- 26. ¿Cuál es la diferencia entre Ruby y Ruby on Rails?
- 27. ¿Cómo envuelvo una extensión Ruby C en una Ruby Gem?
- 28. Convirtiendo Ruby en C#
- 29. Variables de clase Ruby
- 30. Ruby Generar certificado autofirmado
Pero no creo que el primer eslabón es una gramática "oficial". Escuché que lo más parecido a una gramática oficial para Ruby es el archivo parse.y. –
Desafortunadamente, las gramáticas similares de UoB y njit son completamente incorrectas. No hay do en un bucle for, las instrucciones extender e incluir faltan y las variables de excepción faltan. – Barry