Curso de Raku / Expresiones regulares y gramáticas / Gramáticas / Clases de acción / Exercises / Una acción en mayúsculas

Solución: Una acción en mayúsculas

Aquí tienes una posible solución para la tarea.

Código

grammar WordG {
    token TOP  { <word> }
    token word { \w+ }
}

class UpcaseAction {
    method TOP($/) { make $<word>.Str.uc }
}

say WordG.parse('hello', actions => UpcaseAction.new).made;

🦋 Puedes encontrar el código fuente en el archivo upcase-action.raku.

Salida

HELLO

Comentarios

  1. La gramática captura la palabra; la clase de acciones decide qué hacer con ella.

  2. $<word>.Str da el texto coincidente y .uc lo pasa a mayúsculas, y eso es lo que make guarda en la coincidencia.

Una acción en mayúsculas   |   Una gramática, dos clases de acción