Curso de Raku / Expresiones regulares y gramáticas / Gramáticas / Gramáticas, clases y herencia / Exercises / Un booleano con proto
Solución: Un booleano con proto
Aquí tienes una posible solución para la tarea.
Código
grammar Bool {
token TOP { <bool> }
proto token bool {*}
token bool:sym<true> { 'true' }
token bool:sym<false> { 'false' }
}
say Bool.parse('true').defined;
say Bool.parse('false').defined;
say Bool.parse('unknown').defined;🦋 Puedes encontrar el código fuente en el archivo proto-bool.raku.
Salida
True
True
FalseComentarios
El proto token
booltiene dos variantes con nombre,trueyfalse.Cada análisis elige la variante que coincide, así que funcionan tanto
'true'como'false'. Un proto token es la manera ordenada que tiene una gramática de decir «una de estas alternativas con nombre».'unknown'no coincide con ninguna variante, así que el proto token no tiene a quién delegar y el análisis falla:False. El proto acepta exactamente las alternativas que enumeras, y ninguna más.
Navegación del curso
← Un booleano con proto | El árbol de análisis, make y made →