Curso de Raku / Apéndice 🆕 / Tipos y máquinas de texto / Expresiones regulares y gramáticas / Exercises / Una gramática para nombres completos
Solución: Una gramática para nombres completos
Aquí tienes una posible solución para la tarea.
Código
grammar FullName {
token TOP { <first> \s+ <last> }
token first { \w+ }
token last { \w+ }
}
my $match = FullName.parse('Grace Hopper');
say ~$match<first>;
say ~$match<last>;🦋 Puedes encontrar el código fuente en el archivo grammar-fullname.raku.
Salida
Grace
HopperComentarios
El token
TOPes donde empieza el análisis; se refiere a los otros tokens por nombre con<first>y<last>, que pasan a ser claves de la coincidencia.$match<first>es un objeto de coincidencia; el~prefijo lo convierte en la cadena de texto simple que coincidió.
Navegación del curso
← Una gramática para nombres completos | Una gramática que suma →