DSL's en Scala

Introducción

Acá vamos a ver una serie de "patterns" que pueden aparecer a la hora de hacer un DSL interno en Scala. Y también las diferentes variantes de cómo implementarlos. Dado que Scala tiene muchos features locos, aparecen las diferentes variantes.
Estos patterns entonces representan "pedacitos" de sintaxis dentro de un DSL. No nos enfocamos en un DSL completo.

Keywords o Instrucciones

//TODO: Usando
  • métodos:
    • heredados
    • con implicit class
    • parámetros:
      • 1 solo parámetro no necesita paréntesis
      • no necesita punto
      • N parámetros: modelado como métodos de 1 parametro encadenados.
  • con object's y apply (ejemplo del LOGO)

Dinamismo

//TODO: cómo permitir que el usuario del DSL escriba palabras propias sin caer en strings o
definir elementos de Scala como métodos, funciones, etc.
  • Symbols
  • Dynamic Objects

Ejemplos

Comments