Actualmente estoy implementando un pequeño compilador en Scala y mientras estaba haciendo el componente para el análisis de contexto, descubrí el rasgo Binders
en el paquete scala.util.parsing.ast
(estoy usando Scala 2.9 RC), que está documentado para habilitar el enlace de nombre durante el análisis. Eso suena muy interesante y he estado buscando en Google mucho, pero todavía no tengo ni idea de cómo usarlo. Si bien, por supuesto, puedo dejar que mi sintaxis abstracta se derive desde Binders
, no veo cómo proceder desde allí. ¿Hay algún ejemplo del uso en la red?¿Cómo se supone que scala.util.parsing.ast.Binders se debe usar?
Respuesta
Al buscar en Google encontré this page, que parece ser una versión de desarrollo de una documentación con más detalles. Lamentablemente, no pude encontrar esta versión en línea (es decir, fuera de un repositorio de origen) de esta documentación.
No estoy seguro, sin embargo, de que encontrará lo que está buscando en esta biblioteca. La resolución de nombres es algo bastante delicado, y huele a idea cuestionable de hacerlo durante el análisis. La documentación de esta biblioteca destaca que solo es adecuada para idiomas en los que la resolución del nombre es relativamente simple y, de lo contrario, no puede escalar. Además, ninguno de los ejemplos de análisis en el repositorio de Scala hace uso de esta clase.
Evitaría cautelosamente este territorio inexplorado y diseñaría un análisis vinculante en un pase de análisis posterior separado.
Se supone que no debes usarlo. De hecho, ha sido desaprobado recientemente.
- 1. ¿Cómo se supone que se usa RedirectToRoute?
- 2. Hibernate EntityManager, ¿se supone que debe usarse como singleton?
- 3. ¿Qué se supone que debe hacer esta sintaxis?
- 4. ¿Se supone que debo usar CanCan con Devise?
- 5. ¿Se supone que se debe ignorar el espacio entre un sigilo y su nombre de variable?
- 6. ¿Para qué se supone que se utiliza la anotación javax.inject.Named?
- 7. ¿Se supone que los comentarios Pascal anidan?
- 8. ¿Se supone que 'eval' es desagradable?
- 9. fsync, sync: ¿realmente hace lo que se supone que debe hacer?
- 10. WPF: ¿Se supone que soy un diseñador?
- 11. ¿Qué se debe usar document.implementation.createHTMLDocument?
- 12. MVC, no "se supone" que usará HttpContext.Current nunca más?
- 13. Jquery - Referencia por ID - ¿Se supone que devuelve una matriz?
- 14. ¿Qué se supone que debe hacer exactamente este archivo por lotes?
- 15. ¿Por qué no funciona std :: noskipws, o qué se supone que debe hacer?
- 16. ANR errors - SCREEN OFF - ¿Cómo se supone que debo manejarlos?
- 17. ¿Cómo se supone que scrollTop en JQuery funciona?
- 18. ¿Cómo se supone que debo usar la herramienta de combinación TortoiseSVN (TortoiseMerge)?
- 19. ¿Cómo se supone que debo usar bundle install --standalone con la aplicación Rails?
- 20. ¿Cuándo se debe usar la instrucción Using?
- 21. ¿Cómo se informa al servidor SQL que no se debe usar el caché en las consultas?
- 22. ¿Cuándo se debe usar el modelo Actor?
- 23. ¿Se debe usar UseLayoutRounding & SnapsToDevicePixels Always?
- 24. ¿Qué se supone que ocurre al usar un objeto después de FreeAndNil?
- 25. si se debe usar "SET nombres"
- 26. ¿Cuándo se debe usar POCO en EF4?
- 27. ¿Cuándo NO se debe usar MVVM?
- 28. ¿Cuándo se debe usar [assembly: InternalsVisibleTo()]?
- 29. ¿Qué ocurre si call_user_func se supone que devuelve false?
- 30. mod_deflate o mod_gzip, ¿qué se debe usar?
supongo que tiene razón. El hecho de que no pude encontrar ninguna biblioteca que utiliza 'Binders' me hizo sospechar un poco en primer lugar. Simplemente sonaba muy interesante. –